使用.NET连接Informix

5

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

信息:

基本上,我无法成功连接到Informix数据库。此后,我删除了所有客户端SDK的痕迹。现在,我不知道该怎么做。我不知道是否使用正确版本的ConnectionDriver或者是否可以在VS.NET中使用dll并设置内部连接,但似乎什么都不起作用。任何帮助使连接正常工作的建议都将不胜感激:

示例代码(来自该文章):

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();
        }
    }
}

1
我认为IfxConnection是IBM Informix .NET提供程序,而不是OleDB提供程序,因此连接字符串略有不同http://www.connectionstrings.com/informix#p46,但我不知道这是否重要。我相当确定我已经使用IfxConnection和OdbcDbConnection两者都完成了这个任务,但很抱歉我现在没有代码 - 或许稍后会有。 - Rup
嗯,我不确定为什么,但显然卸载和重新安装使它工作了...之前出了什么问题我也不确定。我想我们可以把这个标记为关闭了? - myermian
2个回答

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

我唯一能补充的是,Windows 7与IBM的64位库不兼容。我已经不得不多次重新安装了。我想我的安装除了Informix出了问题还有其他原因。在一个无关的话题上,我不得不手动添加路径到包含.dll文件的文件夹的系统环境路径中(例如program files/IBM SDK/Bin/netf20/dll)。 - Luis Robles

0
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/


2
这与他已经拥有的代码完全相同(除了异常文本)。 - Rup

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