.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);就行了

posted @ 2010-08-02 14:45  晴天娃娃、  阅读(2394)  评论(1编辑  收藏  举报