用 ADOX 创建 Access 数据库,真的是个挺实用的技巧,尤其在做小型后台工具或客户端程序时。你可以直接在代码里搞定数据库的生成,完全不用手动去 Access 里点来点去,省事多了。ADOX 本质上就是对 Access 数据库结构的控制器,建库、建表、加字段啥的都能搞定。

ADOX 的精髓在于你能“动态”操作数据库结构。比如用户第一次运行程序时直接生成数据库文件、自动建表、加索引,全部一气呵成。你得先引入库——在.NET 里用System.Data.OleDb,VB6/VBA 的话记得勾上Microsoft ADO Ext. x.x for DDL and Security

创建数据库文件的流程挺简单。先造个 Connection,连接字符串根据版本选Microsoft.Jet.OLEDB.4.0或者Microsoft.ACE.OLEDB.12.0

OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=myNewDatabase.accdb;");

用 Catalog 对象创建数据库

OleDbCatalog catalog = new OleDbCatalog();
catalog.Create(conn.ConnectionString);

记得关闭 Connection

conn.Close();

除了建库,ADOX 还可以用来加表、设字段、弄索引。比如你想建一个叫MyTable的表,字段Field1是字符串,长度 50,还要加主键索引,也没问题:

OleDbTable table = new OleDbTable();
table.Name = "MyTable";
OleDbColumn col1 = new OleDbColumn();
col1.Name = "Field1";
col1.Type = OleDbType.VarChar;
col1.Size = 50;
table.Columns.Append(col1);
OleDbIndex index = new OleDbIndex();
index.Name = "MyIndex";
index.Columns.Append("Field1");
index.Primary = true;
table.Indexes.Append(index);
catalog.Tables.Append(table);

哦对了,如果你用的是 Office 64 位,别忘了安装 ACE 驱动,否则Microsoft.ACE.OLEDB.12.0会报错。

如果你平时需要批量创建 Access 数据库、快速搭建数据结构,ADOX 真的蛮适合你。顺手、灵活,代码也清爽。如果你还没试过,不妨弄个 Demo 玩玩,快就能上手。