第一个程序
如果我们想这样做:
首先,在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表:
建表成功!现在来做第二步,向这个表中添加一条数据,比如将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表:
确实成功插入了一条数据。
这就是我在完成这么一个小小的任务时所做的十分复杂的工作,当然,你的做法肯定比我简单,不过简单不过它--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来查看:
是不是感觉很神奇?
我们来简要地分析一下这个程序;
首先,我们设置了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之旅~