温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

使用C#怎么连接Informix数据库

发布时间:2021-05-31 16:38:46 来源:亿速云 阅读:279 作者:Leah 栏目:编程语言

使用C#怎么连接Informix数据库?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Informix 数据库升级简介

Informix 数据库升级是指把使用的 Informix 数据库从低版本转化为高版本。对 Informix 数据库进行升级是一项系统工程,包括升级前的测试、升级前的检查、升级操作过程、升级后的测试、升级后的调优等。

Informix 数据库升级有两种类型:in-place 和 non-in-place。In-place 升级中,新版本的 Informix 使用的数据文件与旧版本的 Informix 相同,数据库管理员无需导出导入数据。Non-in-place 升级中,新版本的 Informix 使用的数据文件与旧版本的 Informix 不同,数据库管理员需要导出导入数据。

In-place 升级比较简单,升级操作时间短。non-in-place 升级比较复杂,升级操作时间长,所需的硬件资源多,风险较小。在一些情况下我们只能使用 non-in-place 升级,例如改变了硬件或操作系统。

两种类型的 Informix 数据库升级的示意图如图 1 所示。

图 1. 两种类型的 Informix 数据库升级的示意图

使用C#怎么连接Informix数据库

两种类型的 Informix 数据库升级的示意图

正文

最近在工作中遇到了需要连接Informix数据库的问题,在通过研究后发现了可以通过多种方式实现,我选择的是通过IBM Informix .NET Provider。该方式需要引用IBM.Data.Informix.dll。

using IBM.Data.Informix;
using System; 7 
namespace InformixLinkTest
{
 class Program
 {
  static void Main(string[] args)
  {
   try
   {
    // Open a connection
    IfxConnection conn = new IfxConnection(
    "Host=127.0.0.1;Service=9098;"
    + "Server=informixserver;Database=MyDatabase;"
    + "User ID=informix;password=MyPassword;db_locale=en_us.819"
    );
    conn.Open();
    IfxDataReader rd;
    using (IfxCommand cmd = conn.CreateCommand())
    {
     cmd.CommandText = "select * from simpletable";
     rd = cmd.ExecuteReader();
     rd.Read();
     do
     {
      if (rd.HasRows)
      {
       ///Assuming the table has two columns
       Console.WriteLine("{0}", rd[0]);
      }

     } while (rd.Read());
    }
    conn.Close();
   }
   catch (IfxException e)
   {
    Console.WriteLine(e.ToString());
    Console.ReadLine();
   }
 }
}

在调试过程中会发现出现异常(System.DllNotFoundException:“无法加载 DLL“IfxDotNetIntrinsicModule.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。”),具体如图:

使用C#怎么连接Informix数据库

通过提示可以看到找不到IfxDotNetIntrinsicModule.dll,我通过在安装Informix数据库的路径中找到了这个包放到了bin文件夹下后

使用C#怎么连接Informix数据库

就能正常运行了。

另一个问题就是在连接串中最开始db_locale的值我是给的utf8,按照这个也会出现异常情况,异常代码为(ERROR [HY000] [Informix .NET provider][Informix]Database locale information mismatch. ),截图如下:

使用C#怎么连接Informix数据库

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI