不用ADOX.CatalogClass创建Access数据库文件

由于项目须要动态创建Access数据库,网上现在所有创建Access文件的方法都是采用ADOX.CatalogClass这个方法不是不好,但我只是为了创建一个文件而以,然后的表\视图都可以通过Sql语句来创建的.觉得根本没有必要引用COM组件,大家都知道COM组件是Window下才能使用的.如果项目以后移植到Linux\Mac系统上的Mono平台上时就这个功能就废掉了(虽然现在Mono连接Access比较麻烦主要是非Window平台没有Microsoft.Jet.OLEDB,从而要下载MDB Tools才能使用非Window平台访问Access,所以一搬现在很多人在非Window系统下都会采用动态创建Sqlite来替代Access)。这Mono下访问Access可不是这次所说的。

Mono的Odbc现在支持的数据库类型也很多详情可以查看http://www.mono-project.com/ODBC

回到正题我就是不想为了创建个文件而引用到Com。那既然直是创建文件而以把一个空的Access文件包含到项目的资源文件中,动态创建数据库文件时把资源中的文件拷贝一份出来就可以.你没有看错就是这么简单,只是一个IO的简单复制而以。

Step1:当然是创建一个空的Access文件,这个一般都是用Office Access就可以简单完成了。暂定为db.mdb

Setp2:把db.mdb文件拷贝到一个【DBProvider】项目中,属性项目的[生成动作]改变成[嵌入资源]

Setp3:然后在项目中把资源文件读取出来写入到一个指定文件路径这就完成了。代码就直接上图

原文地址:https://www.cnblogs.com/DasonKwok/p/2620194.html