C#动态创建Access数据库
记得以前用DAO和VC动态创建Access数据库的mdb文件比较麻烦,API很多。现在好像很少有人提刀了。实际上,动态创建mdb数据最简单的方法是ADOX。
用ADOX创建access数据库的方法非常简单。您只需要创建一个目录对象,然后调用它的Create方法,如下所示:
ADOX。目录Catalog = new Catalog();
目录。Create("Provider=Microsoft。Jet . OLEDB.4.0数据源= d:\ test . MDB;Jet OLEDB:发动机类型= 5”);
只做了两行代码。我主要介绍C #中的实现细节。首先,你需要添加一个引用,切换到Com页面中的“添加引用”对话框,选择“Microsoft ADO ext。2.8对于DDL和安全性”,然后单击确定。在文件的开头,使用ADOX名字空之间。然后添加如上所示的代码,以成功创建Access数据库。代码如下:
使用系统;
使用系统。集合。泛型;
使用系统。文本;
使用ADOX;
命名空间testADOX
...{
课程计划
...{
static void Main(string[]args)
...{
ADOX。目录Catalog = new Catalog();
目录。Create("Provider=Microsoft。Jet . OLEDB.4.0数据源= d:\ test . MDB;Jet OLEDB:发动机类型= 5”);
}
}
}
创建数据库文件是没有用的。我们必须创建一个表。在创建表之前,我们必须连接到目标数据库。用来连接数据的桥实际上是ADO的连接对象,所以我们要重新添加ADO的应用,在添加引用对话框中切换到Com页面,选择“Microsoft ActiveX数据对象2.8库”,然后点击确定。下面是创建表的完整代码:使用System
使用系统。集合。泛型;
使用系统。文本;
使用ADOX;
命名空间testADOX
...{
课程计划
...{
static void Main(string[]args)
...{
ADOX。目录Catalog = new Catalog();
目录。Create("Provider=Microsoft。Jet . OLEDB.4.0数据源= d:\ test . MDB;Jet OLEDB:发动机类型= 5”);
ADODB。连接cn = new ADODB。connection();
cnOpen("Provider=Microsoft。Jet . OLEDB.4.0数据源=d:\test.mdb ",null,null,-1);
目录。ActiveConnection = cn
ADOX。表格表格=新ADOX。table();
表。Name = " FirstTable
ADOX。列column =新ADOX。列();
列。ParentCatalog = catalog
列。Name = " RecordId
列。type = datatype enum . ad integer;
列。defined size = 9;
列。属性["自动增量"]。值=真;
表。Columns.Append(column,DataTypeEnum.adInteger,9);
表。keys . Append(" first table primary key ",KeyTypeEnum.adKeyPrimary,column,null,null);
表。Columns.Append("CustomerName ",DataTypeEnum.adVarWChar,50);
表。Columns.Append("Age ",DataTypeEnum.adInteger,9);
表。Columns.Append("生日",DataTypeEnum.adDate,0);
目录。tables . Append(table);
cnclose();
}
}
}
在上面的代码中,创建了一个名为FirstTable的表,向该表添加了四个字段,并设置了一个主键。在表中,在4个字段中分别输入不同的常用类型。第一个字段是自动递增的整数类型,这很特殊。您必须为此字段设置ParentCatalog属性,并将属性值“自动增量”设置为true。Access中的文本类型对应adVarWchar,而日期类型对应adDate。
table . keys . append(" first table primary key ",keytypeenum.adkeyprimary,column,null,null)中显示了键设置。如果是外键,还必须设置关联表和关联字段,也就是append方法的最后两个字段。
0条评论