ODBC连接字符串

8

我用C#编写了一个程序,使用OdbcConnection来提取一些数据:

using System.Data.Odbc;
......

OdbcConnection OdbcConn = 
                new OdbcConnection(Properties.Settings.Default.ConnectionString);
OdbcCommand cmd = new OdbcCommand();

//open connection 
if (OdbcConn.State != ConnectionState.Open)
{
    OdbcConn.Open();
}

在我的设置文件中,我有这个ConnectionString:

Dsn=****;uid=userID;pwd=password

然而,我无法建立连接。我安装了IBM公司的iseries访问驱动程序,但如果我尝试使用MS访问,则可以连接。有什么建议吗?

3个回答

16

只需点击顶部附近使用的数据库类型,即可看到您缺少的内容的良好示例(我注意到您没有告诉它连接到哪里,即名称或IP)。 - Eric Brown - Cal
有人知道如何使用驱动程序建立DSN连接吗? - saiful
如果我要在远程服务器上使用Access设置ODBC呢? - Jeff Bootsholz

4
在 Windows 64 位机器上,确保检查你的 C# 代码是编译成 x86(32 位)、x64 还是“任何 CPU”。请注意,如果你编译为“任何 CPU”,它将默认选择 x64 位驱动程序。
32 位驱动程序可以在C:\windows\SysWOW64\odbcad32.exe找到。32 位驱动程序可以在C:\windows\system32\odbcad32.exe找到。
首先,请确保使用我之前提供的路径验证你的连接是否在 ODBC 数据源管理员中工作。即创建一个 DSN 并按照 Turbot 的建议进行测试。一旦你验证了这个连接工作,你的连接字符串可以使用刚刚创建的 DSN,也可以使用一个无 DSN 的连接字符串。
以下是使用 ODBC 驱动程序的无 DSN 连接字符串示例:

Driver={Progress OpenEdge 11.3 Driver};HOST=wfdscr11.wf.local;Port=1234;DB=MyDatabaseName;UID=John;PWD=Doe

在这个例子中,我需要从我的C#代码连接到一个Progress数据库,而不必指定DSN,下面是我使用的连接字符串。您可以看到驱动程序的名称是“Progress OpenEdge 11.3 Driver”。

enter image description here


0

我总是喜欢在控制面板中使用数据源(ODBC)验证连接(假设您在Windows环境中)。确保您在ODBC选择中看到可用的驱动程序,并按照步骤测试连接。

如上所述,连接字符串网站将为您提供有关特定驱动程序连接的属性和格式的想法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接