[转载].NET ADOX创建Access数据库 – 编程随笔 – 博客园.
前几天做一个软件,其中一个功能是让用户能创建数据库,这个地方原来没有接触过,一般都是先创建好,再连接查询等就OK了,但是用.net创建还是第一次遇到,呵呵,才疏学浅,其中的方法留在这里供日后参考。
首先是创建一个数据库,先引用COM组件中的Microsoft ADO Ext. 2.8 for DDL,添加完成后 项目中的引用会增加一个ADOX的引用,好了,这样就可以创建一个空的Access数据库了:
string _DataSource = string.Format(@”Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Jet OLEDB:Engine Type=5″, _Dir);
ADOX.Catalog _cata = new Catalog();
_cata.Create(_DataSource);
也就这三行就行了。
当然,不能只创建出一个空的库,里面要有表,字段,等。这次要用的Microsoft ActiveX Data Objects 2.8 Library,先创建连接
ADODB.Connection _Con = new ADODB.Connection();
_Con.Open(_DataSource, null, null,-1);
_cata.ActiveConnection = _Con;
建立好连接后,就可已建立表了
ADOX.Table _NewTable = new ADOX.Table();
_NewTable.Name = “Spiderbase”;
然后字段
ADOX.Column _Column = new ADOX.Column();
_Column.ParentCatalog = _cata;
_Column.Name = “ID”;
_Column.Type = DataTypeEnum.adInteger;
_Column.DefinedSize = 9;
_Column.Properties[“AutoIncrement”].Value = true; //这里首先建立ID列
_NewTable.Columns.Append(_Column, DataTypeEnum.adInteger, 9);
_NewTable.Keys.Append(“IDKey”, KeyTypeEnum.adKeyPrimary, _Column, null, null);//设置主键
_NewTable.Columns.Append(“Statement”, DataTypeEnum.adVarWChar, 200);
_NewTable.Columns[“Statement”].Attributes = ColumnAttributesEnum.adColNullable;
_NewTable.Columns.Append(“标题”, DataTypeEnum.adVarWChar, 200);
_NewTable.Columns[“标题”].Attributes = ColumnAttributesEnum.adColNullable;
其中的.Attributes属性中的ColumnAttributesEnum是设置约束的(NOT NULL);
好了 ,就这样,一个表就建立好了
最后 _cata.Tables.Append(_NewTable);就行了