C#操作Informix数据库

来源:互联网 发布:c语言进程的创建 编辑:程序博客网 时间:2024/05/01 07:53

在做开发的过程中,有时会向数据库中插入大批量数据,比如几十万条记录。由于这次使用的是Informix,这个数据库的客户端都不怎么好用,导入数据总是出问题,于是干脆自己写个程序,把记录从文件中读出来,插入到数据库中。本来想写个C++程序,发现ifstream读了几万条记录就不行了,ifstream.good()就通不过。还是写个c#的吧。

 

c#连接数据库,需要引入IBM.Data.Informix.dll。这个动态链接库是安装Informix时在安装目录可以找到的。

下面是例子程序:

using System;using System.Collections.Generic;using System.Text;using IBM.Data.Informix;using IBM.Data.Utilities;using System.IO;namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {            try            {                // Open a connection                IfxConnection conn = new IfxConnection(                "Host=192.168.221.140;Service=9091;"                + "Server=test_server;Database=NX_Localization;"                + "User ID=informix;password=jim480;db_locale=en_us.utf8"                );                conn.Open();                FileStream ifs = new FileStream("pybknm.sql", FileMode.Open);                StreamReader sr = new StreamReader(ifs, System.Text.Encoding.Default);                String strLine;                int cnt = 0;                while ((strLine = sr.ReadLine()) != null)                {                    cnt++;                    IfxCommand cmd = new IfxCommand(strLine, conn);                    cmd.CommandTimeout = 200;                    int row = 0;                    try                    {                        row = cmd.ExecuteNonQuery();                    }                    catch (Exception ex)                    {                        Console.WriteLine(ex.Message);                    }                    Console.WriteLine("cnt=" + cnt);                    if(row!=1)                        break;                }                Console.WriteLine("cnt=" + cnt);                Console.ReadLine();                conn.Close();            }            catch (IfxException e)            {                Console.WriteLine(e.ToString());                Console.ReadLine();            }        }        }}


 

原创粉丝点击