C#ODBC驱动程序';s SQLSetConnectAttr失败
本文关键字:SQLSetConnectAttr 失败 驱动程序 C#ODBC | 更新日期: 2023-09-27 18:27:06
我正在尝试使用.net控制台应用程序连接到Access 2007数据库(.accdb)。我在ODBC管理器中设置了一个系统DSN。这就是我设置连接的方式:
conn = new OdbcConnection();
conn.ConnectionString = "DSN=HU-FU";
conn.Open();
在我的开发机器上,它运行得很好,但今天我试图将它安装在客户端机器上,结果出现了以下错误:
ERROR [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed
有人知道问题出在哪里吗?
以下是ODBC跟踪源:
UPSShipmentServ 1454-6f0 ENTER SQLDriverConnectW
HDBC 0x00424070
HWND 0x00000000
WCHAR * 0x69938B34 [ -3] "******' 0"
SWORD -3
WCHAR * 0x69938B34
SWORD -3
SWORD * 0x00000000
UWORD 0 <SQL_DRIVER_NOPROMPT>
UPSShipmentServ 1454-6f0 EXIT SQLDriverConnectW with return code -1 (SQL_ERROR)
HDBC 0x00424070
HWND 0x00000000
WCHAR * 0x69938B34 [ -3] "******' 0"
SWORD -3
WCHAR * 0x69938B34
SWORD -3
SWORD * 0x00000000
UWORD 0 <SQL_DRIVER_NOPROMPT>
DIAG [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed (0)
UPSShipmentServ是我的应用程序的名称。但遗憾的是,这对我来说没有任何意义…
这个问题还有一个补充。我在两台机器上都检查了Access驱动程序(ACEODBC.DLL)的版本,我的版本比客户端的版本更新得多。可能是问题吗?有什么办法更新他的司机吗?
谢谢。
好了,伙计们,我必须为这个问题道歉
我知道问题出在哪里。这是个愚蠢的错误。在ODBC管理器中,当我设置DSN时,我没有正确选择accdb文件。所以我的程序失败了,因为没有为DSN选择数据库文件。
因此,下次如果您看到此错误,请确保您的DSN设置正确。无论如何,谢谢你的回复。
也许我不在,但我通常直接引用Access bd文件(这不是必要的正确方式):
String dbPath = "c:'access.accdb";
OleDbCommand cmd = new OleDbCommand();
OleDbConnection mycon = new OleDbConnection();
mycon.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + dbPath + ";Jet OLEDB:Database Password=thePassword;";
cmd = mycon.CreateCommand();
cmd.CommandText = Query;
mycon.Open();
在安装odbc数据源的客户端计算机上进入odbc数据来源管理员并添加数据源"HU_FU"