由於項目須要動態創建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:然后在項目中把資源文件讀取出來寫入到一個指定文件路徑這就完成了。代碼就直接上圖