如何使用.NET连接到Informix?

问题描述:

背景资料:如何使用.NET连接到Informix?

  • 的Visual Studio 2010(.NET Framework 4.0中)
  • Informix服务器7.31
  • 的Informix ClientSDK 3.50 TC7(Windows 32位)安装为好。

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

当我去到Visual Studio我做到以下几点:

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

结果。

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

结果。

  1. 服务器资源管理器
  2. 右键单击数据连接>添加连接...
  3. 其他| .NET Framework数据提供OLE DB
  4. OLE DB提供程序:IBM Informix的OLE DB提供程序
  5. 数据链接...

结果:指定的程序无法找到。 (异常来自HRESULT:0x8007007F)

除此之外,我不知道该怎么真的填写在那里...

哦,我甚至试图用在first article提供的sample code,在我的连接信息替换:

  • 主持人:服务器的IP
  • SERVICENUM:端口号
  • 服务器:该服务器名称
  • 数据库:数据库我正在
  • USER:用户ID
  • PASS:我下载密码

示例代码/改变:

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(基本上非常没有帮助)。调用堆栈是:!

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

我坚持,而且不知道该怎么办...: -/

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

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

因为我最初安装了几个不同版本的Informix驱动程序,所以我必须弄坏某些东西。

+0

我知道这是一个超级旧的帖子,你可能不记得但我有同样的问题。你碰巧记得,如果你不得不在你的项目引用中添加IBM.DATA.Informix?野外没有太多的信息.​​.....我安装了最新的客户端SDK,并试图设置一个模拟连接,只是为了打到应该触及catch的try catch,但是它抛出了与你无关的错误论点对我没有任何意义。 – Bowenac 2014-09-10 23:52:18