如何使用.NET连接Informix?

时间:2010-07-08 16:04:11

标签: .net database odbc oledb informix

背景资料:

  • Visual Studio 2010(.NET Framework 4.0)
  • Informix Server 7.31
  • 也安装了Informix ClientSDK 3.50 TC7(Windows 32位)。

我尝试了多种在线建议连接到Informix服务器的方法,但是无论出于何种原因,它们都不适用于我。我查看过Connect Informix with ADO.Net等文章,并使用ConnectionStrings.com生成连接字符串。

当我访问Visual Studio时,我会执行以下操作:

  1. 服务器资源管理器
  2. 右键单击数据连接>添加连接...
  3. Microsoft ODBC数据源|用于ODBC的.NET Framework数据提供程序
  4. 使用连接字符串(使用ConnectionString网站复制/粘贴)。
  5. 测试连接
  6. 结果:错误[IM002] [Microsoft] [ODBC驱动程序管理器]找不到数据源名称且未指定默认驱动程序。

    1. 服务器资源管理器
    2. 右键单击数据连接>添加连接...
    3. 其他|用于ODBC的.NET Framework数据提供程序
    4. 使用连接字符串(使用ConnectionString网站复制/粘贴)。
    5. 测试连接
    6. 结果:错误[IM002] [Microsoft] [ODBC驱动程序管理器]找不到数据源名称且未指定默认驱动程序。

      1. 服务器资源管理器
      2. 右键单击数据连接>添加连接...
      3. 其他|用于OLE DB的.NET Framework数据提供程序
      4. OLE DB提供程序:IBM Informix OLE DB提供程序
      5. 数据链接......
      6. 结果:找不到指定的过程。 (HRESULT异常:0x8007007F)

        除此之外,我不确定该在那里填写什么......

        哦,我甚至尝试使用sample code中提供的first article代替我的连接信息:

        • HOST:服务器的IP
        • SERVICENUM:端口号
        • SERVER:服务器名称
        • DATABASE:我正在处理的数据库
        • USER:用户ID
        • 通过:密码

        我下载/更改的示例代码:

        using System;
        using IBM.Data.Informix;
        
        namespace IfxAdoPres.Basics {
            public class BasicConnection {
                const string HOST = "192.168.OBFUSCATED";
                const string SERVICENUM = "5000";
                const string SERVER = "myServer";
                const string DATABASE = "myDatabase";
                const string USER = "myUserID";
                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;
                }
        
                public void CloseConnection() {
                    conn.Close();
                }
            }
        }
        

        我在conn.ConnectionString = ConnectionString行上出错了;异常声明“无效参数”没有InnerException(基本上非常无用)。 callstack是:

        • Basics.exe!IfxAdoPres.Basics.BasicConnection.MakeConnection()
        • Basics.exe!IfxAdoPres.Basics.Test.Main(string [] args = {string [0]})
        • [外部代码]

        我被困住了,不知道该怎么做......: - /

1 个答案:

答案 0 :(得分:1)

好吧,我回到了文章:http://www.ibm.com/developerworks/data/library/techarticle/dm-0510durity/

在卸载所有内容并重新开始之后,演示代码似乎在安装IBM Informix Client SDK 3.5并使用Setnet32配置我的设置后起作用。

因为我最初安装了几个不同版本的Informix驱动程序,所以我肯定有过腐败的东西。