MySQL OdbcConnection错误System.Data.Odbc.OdbcException

时间:2014-02-06 04:44:02

标签: c# mysql odbc

我正在尝试使用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

非常感谢任何帮助

1 个答案:

答案 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定义的属性,我总是使用大写字母,我遇到了只做大写的驱动程序管理器。