DbEntry.Net (Lephone Framework) 2

DbEntry.Net (Lephone Framework) 2

原作者信息项目首页: http: //dbentry.codeplex.com/
Homepage, Blog(Chinese version 点睛工作室) and email:
  • Homepage: http://llf.hanzify.org
  • Blog: http://llf.javaeye.com
  • Email: liang_li_feng(at)tom.com
  • Company: http://www.xsoftware.biz

转载规则:
  • 包括原文作者信息
  • 在翻译和扩充中使用的规则
  • 项目开源协议

注意 本篇跟原作者的 First application有一定出入。 源码下载  如果嫌我讲的啰嗦。。可以直接跳到 DbEntry.Net 部分

第一个程序


如果我们想这样做:

首先,在Access数据库中动态创建一个名为Users的表,然后,向表中插入一条数据。

那么,我的做法是这样的:

先用Access2003创建一个名为Sample2n.mdb的数据库,为了使得整个过程和数据的变更比较清晰,我将它放到C:"根目录下。

假设表的结构:    [ID][Name] # ID为主键,且自动增长

程序的引用:


程序的引用
 1 using System;
 2 
 3 using System.Collections.Generic;
 4 
 5 using System.Linq;
 6 
 7 using System.Text;
 8 
 9 using System.Data.OleDb;
10 
11 using ADODB;
12 
13 using ADOX;

#ADODB 添加引用->COM->Microsoft ActiveX Data Objects 2.8 Library

#ADOX 添加引用->COM->Microsoft ADO Ext. 2.8 for DDL and Security


创建表的程序:


创建表的程序
 1  private static  void CreateTable()
 2 
 3         {
 4 
 5             ADOX.Catalog catalog = new Catalog();//建立一个新的数据库对象
 6 
 7             ADODB.Connection connection = new Connection();//创建一个连接对象
 8 
 9             connection.Open(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:"Sample2n.mdb",null,null,-1);//打开连接
10 
11             catalog.ActiveConnection = connection;//将connection设置为数据库的活动连接
12 
13             ADOX.Table tbUser = new Table();//创建一个数据表对象
14 
15             tbUser.Name = "Users";//设置数据表名
16 
17             ADOX.Column columnID = new Column(); //创建一个字段对象
18 
19             columnID.Name = "ID";//设置字段名称
20 
21             columnID.Type = ADOX.DataTypeEnum.adInteger;//字段类型设置
22 
23             columnID.DefinedSize = 9;//字段大小设置
24 
25             columnID.ParentCatalog = catalog;//设置字段所属数据库 (主键必须设置此项)
26 
27             columnID.Properties["AutoIncrement"].Value = true;//设置字段自增长属性
28 
29             tbUser.Columns.Append(columnID, ADOX.DataTypeEnum.adInteger, 9);//添加此字段
30 
31             tbUser.Keys.Append("UserPrimaryKey", KeyTypeEnum.adKeyPrimary, columnID,null,null);//添加主键
32 
33             tbUser.Columns.Append("Name", ADOX.DataTypeEnum.adVarWChar, 50);//添加一个名为Name的字段
34 
35             catalog.Tables.Append(tbUser);//向数据库中增加一个表
36 
37         }

好了,现在我们来执行它:


1  static   void  Main( string [] args)
2 
3          {
4 
5              CreateTable();
6 
7          }


Ok,执行后,我们打开数据库,会发现多一个结构如下的Users表:

 ID  Name
   

建表成功!现在来做第二步,向这个表中添加一条数据,比如将Elephant 放到里边去


向数据表中插入一条数据
 1 private static void InsertData()//向数据表中插入一条数据
 2 
 3         {
 4 
 5             CreateTable();
 6 
 7             OleDbConnection connection = new OleDbConnection();
 8 
 9             connection.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:"Sample2n.mdb";
10 
11             connection.Open();
12 
13             OleDbCommand cmdInsert = new OleDbCommand("insert into Users (Name) values ('elephant')", connection);
14 
15             cmdInsert.ExecuteNonQuery();
16 
17         }

执行它:


1  static   void  Main( string [] args)
2 
3          {
4 
5               // CreateTable();
6 
7              InsertData();
8 
9          }

再打开表数据库-->Users表:

 ID  Name
 1  elephant

确实成功插入了一条数据。



这就是我在完成这么一个小小的任务时所做的十分复杂的工作,当然,你的做法肯定比我简单,不过简单不过它--DbEntryNet。

先用Access2003创建一个名为Sample2n.mdb的数据库,也将它放到C盘根目录下.

使用DbEntry.Net,首先添加它的引用,在此次测试中,只需添加Lephone.Data.dll 和Lephone.Util.dll即可。

#添加引用->浏览->Lephone.Data.Dll   Lephone.Util.dll

在项目中添加一个应用程序配置文件。

#添加->新建项->应用程序配置文件->App.Config

修改里边的内容为:


App.config
 1 <?xml version="1.0" encoding="utf-8" ?>
 2 
 3 <configuration>
 4 
 5   <configSections>
 6 
 7     <section name="Lephone.Settings"
 8 
 9       type="Lephone.Util.Setting.NameValueSectionHandler, Lephone.Util" />
10 
11   </configSections>
12 
13   <Lephone.Settings>
14 
15     <add key="AutoCreateTable" value="true" />
16 
17     <add key="DataBase" value="@Access : @C:\Sample2d.mdb" />
18 
19   </Lephone.Settings>
20 
21 </configuration>

然后我们新建一个类,类名为我们的表名:Users

然后输入如下内容:


Users.cs
1 public class Users : DbObject
2 
3     {
4 
5         public string Name;
6 
7     }

这样来使用它:


 1  static   void  Main( string [] args)
 2 
 3          {
 4 
 5              Users u  =   new  Users();
 6 
 7              u.Name  =   " elephant " ;
 8 
 9              DbEntry.Insert(u);
10 
11          }

OK,结束了,打开我们的数据库Sample2d.Mdb来查看:

 Id  Name
 1  elephant

是不是感觉很神奇?

我们来简要地分析一下这个程序;


首先,我们设置了DbEntry.Net可以自动创建数据表。

打开App.Config,可以看到如下内容:

<add key="AutoCreateTable" value="true" />

这个配置的意义就在于让DbEntry.Net知道,它是可以自动地去创建表的


然后,新建的类文件Users.cs.

我们为什么要将它命名为Users?现在我们仅仅需要知道,它跟我们的表名是一致的。

而且它继承了DbObject

1  public   class  Users : DbObject


最后,我们进行了“插入”操作。


1   Users u  =   new  Users();
2 
3    u.Name  =   " elephant " ;
4 
5    DbEntry.Insert(u);


OK,我们的第一个程序就完成了,大家可以仔细地观察下每个文件,并登录这个项目的主页去查看原作者的文章。

                                                 下一篇,我们继续DbEntry.Net之旅~




我的信息网名:Elephant

你可能感兴趣的:(DbEntry.Net (Lephone Framework) 2)