.net(C#) 连接DB2

来源:互联网 发布:mac 应用快捷键 编辑:程序博客网 时间:2024/05/08 22:12

项目中遇到的.net(C#) 连接DB2问题,解决了,和大家分享一下.

下面的程序是同不Sql2005中的表与DB2中的表

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.Data;

namespace DB2Import
{
    class Program
    {
        static void Main(string[] args)
        {
            OdbcConnection DB2Connection = new OdbcConnection("Dsn=DataSourceName;uid=UserName;pwd=mismidas");//创建DB2的数据源连接

//这里是用数据源连接的

          //DataSourceName 数据源名称

         //UserName 用户名

         //pwd 用户口令
            //OdbcCommand
           
            SqlConnection conSql = new SqlConnection("Data Source=oadatabase//userdb2005;Initial Catalog=GongChengGuanLi;Persist Security Info=True;User ID=sqlUserName;Password=SqlPassword");//Sql2005的数据库连接
            DB2Connection.Open();//打开DB2的数据源连接
            SqlDataAdapter ZDAdapter = new SqlDataAdapter(new SqlCommand("Select * from SCD_GXDY_XGJL", conSql));
            SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(ZDAdapter);
            DataSet ZDDataSet = new DataSet();
            ZDAdapter.Fill(ZDDataSet, "SCD_GXDY_XGJL");
            for (int i = 0; i < ZDDataSet.Tables["SCD_GXDY_XGJL"].Rows.Count; i++)
            {
                Console.WriteLine("importing "+i+" .....");
                DataRow row = ZDDataSet.Tables["SCD_GXDY_XGJL"].Rows[i];
                int KHDM = 0;
                try
                {
                    KHDM = int.Parse("" + row["KHDM"]);
                }
                catch (Exception paresException)
                {
                    KHDM = 0;
                }

                //KHDM
                if ("" + row["KHDM"] != "" && KHDM!=0)
                {
                    OdbcCommand cmdSelect = new OdbcCommand("Select CCUST,CNME,CTYPE,CLOC,CMDPFX from V6tstF.RCM where CCUST=" +KHDM+ "", DB2Connection);
                   OdbcDataReader odbcReader= cmdSelect.ExecuteReader();
                   if (odbcReader.Read())//从DB2中读取数据
                   {
                       row["CNME"] = ""+odbcReader["CNME"];
                       row["CTYPE"] = "" + odbcReader["CTYPE"];
                       row["CLOC"] = "" + odbcReader["CLOC"];
                       row["CMDPFX"] = "" + odbcReader["CMDPFX"];
                   }
                   odbcReader.Close();
                }
               
             
            }
            Console.WriteLine("Updating ....");
            ZDAdapter.Update(ZDDataSet, "SCD_GXDY_XGJL");
            Console.WriteLine("Commplete!");
            Console.WriteLine("Press any Key to Exit!");
            Console.Read();

        }
    }
}
但可能有朋友要问了,DB2的数据源是怎么建立的,安装IBM DB2 RUN-Time Client。

然后运行“從屬站架構輔助程式”来添加数据源.(剩下就是下一步了啊)