0
如何使用C#和ODBC創建MS Access數據庫?使用ODBC在C#中創建Access數據庫
如何使用C#和ODBC創建MS Access數據庫?使用ODBC在C#中創建Access數據庫
由此看來: How do I specify the ODBC Access Driver Format when creating the database
我會這樣說:
enum RequestFlags : int
{
ODBC_ADD_DSN = 1,
ODBC_CONFIG_DSN = 2,
ODBC_REMOVE_DSN = 3,
ODBC_ADD_SYS_DSN = 4,
ODBC_CONFIG_SYS_DSN = 5,
ODBC_REMOVE_SYS_DSN = 6,
ODBC_REMOVE_DEFAULT_DSN = 7
}
[DllImport("ODBCCP32.DLL",CharSet=CharSet.Unicode, SetLastError=true)]
static extern bool SQLConfigDataSourceW(UInt32 hwndParent , RequestFlags fRequest, string lpszDriver, string lpszAttributes);
在你的主要方法有這樣的:
string strDriverName = "Microsoft Access Driver (*.mdb, *.accdb)";
string strAttr = "CREATE_DBV12=c:\access2007.accdb";
SQLConfigDataSource(0, RequestFlags.ODBC_ADD_DSN, strDriverName, strAttr);
警告:未經測試
注意:我複製了pinvoke.net的pInvoke信息。
UInt32 hwndParent似乎不對,應該可能是UIntPtr。
這對於Win64尤其重要,我認爲在查看代碼時需要這些。
如果是這樣,請使用UIntPtr.Zero而不是0.但首先嚐試。
另外請注意,如果他們的目標是很大,我不會使用新項目的訪問數據庫。如果你需要一個獨立的數據庫,改用嵌入Firebird。這樣你可以在以後節省很多麻煩。
另請注意,較新的64位版本的Windows無需安裝Access-driver預安裝AFAIK。
我知道這可能不是要走的路,但你有沒有考慮將空白的Access 2000,2003,2007數據庫嵌入到你的程序集中,並根據需要將它們寫入磁盤?我已經成功地使用了這種技術! – series0ne 2012-08-09 12:01:11