【发布时间】:2016-07-08 00:53:29
【问题描述】:
我有一个应用程序应该让用户在MySQL 或MS SQL 连接之间进行选择。
我这样设置连接字符串:
OdbcConnection SqlConn = new OdbcConnection();
connString = String.Format("Driver={{{0}}}; Server={1}; Port={2}; DataBase={3}; Uid={4}; Pwd={5};", protocol, hostname, port, database, user, password);
SqlConn.ConnectionString = connString;
但是,当尝试open 连接时,我收到以下错误:
ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
现在,我测试了一个 MySQLConnection,并取了我们的连接字符串的Driver 部分,一切正常。我确定这与Driver 有关,但我不确定是什么。我看到的大多数示例都使用Driver={MySQL},但这对我不起作用。
注意:不确定是否重要,但用户将选择一个单选按钮来确定是使用 MySQL 还是 MS SQL。
【问题讨论】:
-
你能创建一个测试成功的 DSN 到 SQL Server 吗?如果是这样,只需构建一个有效的连接字符串即可。
-
以前从未使用过 DSN。不是 SQL 方面的专家,但我也可以使用相同的基本设置连接到 SQL Server。我只是想避免每次连接到数据库切换连接字符串时使用一堆 if 语句。
-
我打开了 ODBC 数据源管理器并拥有
MySQL ODBC 5.3 ANSI和Unicode驱动程序以及SQL Native Client、SQL Server和SQL Server Native Client 10.0/11.0。 -
老实说,您应该将连接字符串存储在您的应用配置中,然后您可以向用户展示来自 cfg 的可能连接。这样,每个服务器/类型的连接字符串格式是否略有不同都没关系。见这里:msdn.microsoft.com/en-us/library/ms254494.aspx
-
如果您计划支持一种以上的数据库类型,请不要编写任何特定于数据库的代码。我从未使用过 MySqlDataReader(你也不必使用!)。 stackoverflow.com/questions/3080601/…
标签: c# mysql sql-server odbc