为什么这个OdbcConnection会给我一个System.InvalidOperationException?

时间:2009-05-07 08:49:19

标签: c# .net sql-server ado.net

我正在构建一个Winforms C#2.0应用程序。

我已成功使用以下方法连接到我的SLQ Server数据库: m_connexion = new SqlConnection(“server = 192.168.xxx.xxx; uid = ...; pwd = ...; database = ...”);

因为我的公司希望能够使用任何数据库,所以我继续使用Odbc驱动程序,我的命令继续这样:

m_connexion = new OdbcConnection(“server = 192.168.xxx.xxx; uid = ...; pwd = ...; database = ...”);

但是,这会抛出System.InvalidOperationException。知道为什么吗?

我也在尝试使用DSN,但值得称道 OdbcConnection connection = new OdbcConnection(“DSN = MyDataSourceName”);建议here,但它同样抛出我的System.InvalidOperationException

3 个答案:

答案 0 :(得分:3)

连接字符串需要Provider =,以便ODBC驱动程序知道您要连接的服务器。在这种情况下,我相信Provider = SQLSERVER。

更新:应该是Provider = SQLOLEDB

答案 1 :(得分:2)

我认为你需要指定一个驱动程序。在此查看详细信息:http://connectionstrings.com/sql-server-2005#21

答案 2 :(得分:0)

如果指定DSN,则必须使用ODBC控制面板配置DSN。它在“管理工具”下称为“设置数据源(ODBC)”。该面板还有一个“测试”按钮,可能会告诉您更多有关出错的信息。

P.S。与“数据库无关”比使用ODBC连接,命令和数据引导程序要多得多。您必须确保在每个目标数据库上运行查询,如果您没有每个目标数据库的测试服务器,则无法执行此操作。所以,如果我是你,我会使用SqlConnection对其进行编码,因为你已经开始使用它了。