使用 .NET 连接到 Informix

Posted

技术标签:

【中文标题】使用 .NET 连接到 Informix【英文标题】:Connecting to Informix using .NET 【发布时间】:2010-08-04 15:26:19 【问题描述】:

服务器信息 Sun Microsystems Inc. SunOS 5.8 通用补丁 2001 年 10 月 服务器:Informix 动态服务器版本 7.31.UD3

信息:

链接:Connecting to Informix database from .Net 文章:http://www.ibm.com/developerworks/db2/library/techarticle/dm-0510durity/ 我正在运行 Visual Studio 2010 (C# 4.0)。 我不在乎是 ODBC 还是 OLE DB。 我卸载了所有用于 Informix 的客户端 SDK。我有现成的可供安装的 IBM Informix CSDK 3.5(文章在其示例中使用 2.9,但我在任何地方都找不到)。 我有文章中的示例代码。

基本上,我无法成功连接到 Informix DB。我已经删除了客户端 SDK 的所有标志。在这一点上,我不知道该怎么做。我不知道我是否使用了正确版本的 ConnectionDriver,或者我是否可以以某种方式使用 dll 并在 VS.NET 内部设置连接,但似乎没有任何效果。任何只是获得工作连接的帮助都会很棒:

Sample Code(来自文章):

using System;
using IBM.Data.Informix;

namespace IfxAdoPres.Basics 
    public class BasicConnection 
        const string HOST = "192.168.OBFUSCATED";
        const string SERVICENUM = "1525"; //Port?
        const string SERVER = "serverOBFUSCATED";
        const string DATABASE = "dbOBFUSCATEDy";
        const string USER = "myusername";
        const string PASSWORD = "mypassword";

        public IfxConnection conn = new IfxConnection();

        public BasicConnection() 

        public void MakeConnection()
        
            string ConnectionString =
                "Host = "   + HOST       + "; " +
                "Service="  + SERVICENUM + "; " +
                "Server="   + SERVER     + "; " +
                "Database=" + DATABASE   + "; " +
                "User Id="  + USER       + "; " +
                "Password=" + PASSWORD   + "; ";
            conn.ConnectionString = ConnectionString;
            try
            
                conn.Open();
                Console.WriteLine("Made connection!");
            
            catch (IfxException ex)
            
                Console.WriteLine(e.ToString());
            

            Console.ReadLine();
        

        public void CloseConnection()
        
            conn.Close();
        
    

【问题讨论】:

我认为 IfxConnection 是 IBM Informix .NET 提供者,而不是 OleDB 提供者,所以连接字符串略有不同 connectionstrings.com/informix#p46 但我不知道这是否重要。我很确定我已经使用 IfxConnection 和 OdbcDbConnection 完成了这项工作,但我没有代码可以提交抱歉 - 可能稍后再说。 好吧,我不知道为什么,但显然卸载并重新安装使它工作......不知道之前出了什么问题。我想我们可以将其标记为已关闭? 【参考方案1】:

只需重新安装...删除所有旧驱动程序并安装全新的 3.5 CSDK,然后使用文章中的演示代码并使用 Setnet32 配置我的连接。

【讨论】:

我唯一可以补充的是,Windows 7 不能很好地与 IBM 的 64 位库配合使用。我已经多次重新安装。我想相信我的安装除了 Informix 坏了还有别的东西。在一个不相关的主题中,我必须手动将包含 .dll 的文件夹的路径添加到系统环境路径中(如程序文件/IBM SDK/Bin/netf20/dll)【参考方案2】:
public void MakeConnection() 
    string ConnectionString = "Host=" + HOST + "; " +
     "Service=" + SERVICENUM + "; " +
     "Server=" + SERVER + "; " +
     "Database=" + DATABASE + "; " +
     "User Id=" + USER + "; " +
     "Password=" + PASSWORD + "; ";

    IfxConnection conn = new IfxConnection();
    conn.ConnectionString = ConnectionString;
    try 
        conn.Open();
        Console.WriteLine("Made connection!");
        Console.ReadLine();
     catch (IfxException ex) 
        Console.WriteLine("Problem with connection attempt: "
                          + ex.Message);
    

见:http://www.ibm.com/developerworks/data/library/techarticle/dm-0510durity/

【讨论】:

这与他已经拥有的代码相同(除了异常文本)

以上是关于使用 .NET 连接到 Informix的主要内容,如果未能解决你的问题,请参考以下文章

使用 Active Directory 服务帐户从 .NET 连接到 SQL Server

使用 .NET 连接到 AS400

使用 JavaScript 连接到 .NET 服务器

使用 .Net Framework 连接到 Google Cloud SQL

在 Visual Studio .net 中连接到 Advantage Database .add

使用 SSH.NET 库通过 SSH 连接到 MySQL