如何使用 C# 和 ODBC 创建 MS Access 数据库?
问问题
1074 次
1 回答
1
由此判断: 创建数据库时如何指定ODBC访问驱动格式
我会这样说:
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。
于 2012-08-09T10:59:50.870 回答