c#动态创建access数据库实例代码

发布时间:2019-11-12编辑:脚本学堂
分享一例c#动态创建access数据库的代码,用adox创建access数据库方法很简单,只需要new一个catalog对象,然后调用它的create方法就可以了。

本节内容:
c#动态创建access数据库

以前要动态的创建access数据库的mdb文件都是采用dao,用vc开发,一大堆的api。
现在动态的创建mdb数据的最简单的方法还是adox。

用adox创建access数据库方法很简单,只需要new一个catalog对象,然后调用它的create方法就可以了。

例如:
 

复制代码 代码示例:
adox.catalog catalog = new catalog();
catalog.create("provider=microsoft.jet.oledb.4.0;data source=d:test.mdb;jet oledb:engine type=5");

介绍下在c#中的实现细节。首先你要添加引用,在“add reference”对话框里切换到com页面,选择“microsoft ado ext. 2.8 for ddl and security”,然后点击ok。
在文件的开头using adox名字空间。

然后,添加如上代码,即可成功的创建access数据库了。

代码:
 

复制代码 代码示例:
using system;
using system.collections.generic;
using system.text;
using adox;
namespace testadox
{
    class program
    {
        static void main(string[] args)
        {
            adox.catalog catalog = new catalog();
            catalog.create("provider=microsoft.jet.oledb.4.0;data source=d:test.mdb;jet oledb:engine type=5");
        }
    }
}

创建了数据库文件是没有实际用处的,还要创建表。
在创建表之前,必须连接目标数据库,用来连接数据的桥梁居然是ado的connection对象,所以不得不再次添加对ado的应用,在添加引用对话框中切换到com页面,选择“microsoft activex data objects 2.8 library”,然后点击ok。

创建表的完整代码:
 

复制代码 代码示例:
using system;
using system.collections.generic;
using system.text;
using adox;
namespace testadox
{
    class program
    {
        static void main(string[] args)
        {
            adox.catalog catalog = new catalog();
            catalog.create("provider=microsoft.jet.oledb.4.0;data source=d:test.mdb;jet oledb:engine type=5");
            adodb.connection cn = new adodb.connection();
           
            cn.open("provider=microsoft.jet.oledb.4.0;data source=d:test.mdb", null, null, -1);
            catalog.activeconnection = cn;
            adox.table table = new adox.table();
            table.name = "firsttable";
            adox.column column = new adox.column();
            column.parentcatalog = catalog;
            column.name = "recordid";
            column.type = datatypeenum.adinteger;
            column.definedsize = 9;
            column.properties["autoincrement"].value = true;
            table.columns.append(column, datatypeenum.adinteger, 9);
            table.keys.append("firsttableprimarykey", keytypeenum.adkeyprimary, column, null, null);
            table.columns.append("customername", datatypeenum.advarwchar, 50);
            table.columns.append("age", datatypeenum.adinteger, 9);
            table.columns.append("birthday", datatypeenum.addate, 0);
            catalog.tables.append(table);
        
            cn.close();
        }
    } (脚本学堂 www.jb200.com 编辑整理)
}
 

  上面的代码中,创建了一个名为firsttable的表,在表里加入了4个字段,并设置了一个主键。表里的字段分别输入4中不同的常用类型,第一个字段是一个自动增长的整数类型,这个类型比较特殊,你必须为这个字段设置parentcatalog属性,并将“autoincrement”的属性值设为true.。access里的text类型对应的就是advarwchar,而日期类型对应的是addate。

  键的设置如table.keys.append("firsttableprimarykey", keytypeenum.adkeyprimary, column, null, null)所示,如果是外键的话,你还必须要设置关联的表和关联的字段,也就是append方法的后两个字段。
  
   大家也可以参照上边的代码创建索引和视图。