如何使用C#和ODBC创建MS Access数据库?
答案 0 :(得分:1)
从这个判断: 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驱动程序的情况下预装了AFAIK。