我正在尝试使用C#中的OdbcConnection连接到MySQL数据库。我收到以下错误:
“System.Data.Odbc.OdbcException”类型的未处理异常 发生在System.Data.dll
中
其他信息:
错误[IM002] [Microsoft] [ODBC驱动程序管理器]数据源名称不是 找到并且没有指定默认驱动程序
导致此错误的原因是什么?
这是我的代码:
String connectionString = "Driver=MySQL ODBC 5.2 UNICODE Driver;Server=myserver.com;Database=mydb;User=myusername;Password=mypassword;Option=3;";
OdbcConnection myodbcConnection = new OdbcConnection(connectionString);
OdbcCommand cmd = new OdbcCommand();
OdbcDataReader reader;
cmd.CommandText = sql;
cmd.CommandType = CommandType.Text;
cmd.Connection = myodbcConnection;
myodbcConnection.Open();
reader = cmd.ExecuteReader();
myodbcConnection.Close();
我还尝试了以下连接字符串:
"Provider=MSDASQL;Driver={MySQL ODBC 5.2 UNICODE Driver};Server=tcr.cjcresources.com;Database=tcr;User=ahardin;Password=go2sql!;Option=3;";
"Driver={MySQL ODBC 5.2 UNICODE Driver};Server=tcr.cjcresources.com;Database=tcr;User=ahardin;Password=go2sql!;Option=3;";
"DSN={MySQL ODBC 5.2 UNICODE Driver};Server=tcr.cjcresources.com;Database=tcr;User=ahardin;Password=go2sql!;Option=3;";
还有更多类似的东西。
我的控制面板设置 - >管理工具 - >数据源(ODBC)
用户DSN具有:MySQL ODBC 5.2 UNICODE Drive & MySQL ODBC 5.2 ANSI Drive
系统DSN具有:MySQL ODBC 5.2 UNICODE Drive & MySQL ODBC 5.2 ANSI Drive
文件DSN具有:MySQL ODBC 5.2 UNICODE Drive & MySQL ODBC 5.2 ANSI Drive in a ODBC folder
我还有能够连接到远程数据库的MySQL Workbench
非常感谢任何帮助
答案 0 :(得分:1)
“Driver = MySQL ODBC 5.2 UNICODE Driver; Server = myserver.com; Database = mydb; User = myusername; Password = mypassword; Option = 3;”
应该是
“DRIVER = {MySQL ODBC 5.2 UNICODE Driver}; Server = myserver.com; Database = mydb; USER = myusername; PASSWORD = mypassword; Option = 3;”
您的驱动程序名称包含空格,因此您使用{和}分隔。就个人而言,对于ODBC定义的属性,我总是使用大写字母,我遇到了只做大写的驱动程序管理器。