一:使用c#通过odbc连接到IBM db2
使用 ConnectionString 属性连接到各种数据源。

部署:只要在客户端安装IBM DB2 ODBC driver。配置DSn即可。

1):可以单独下载DB2 Run-Time Client,大约(86.6m),安装后则odbc驱动程序安装成功。下载地址:ftp://ftp.software.ibm.com/ps/products/db2/fixes2/english-us/db2winIA32v8/fixpak/FP17a_WR21440/FP17a_WR21440_RTCL.exe
2):也可以直接安装ibm db2数据库后,该驱动程序自动安装。下载地址http://www6.software.ibm.com/sdfdl/v2/regs2/db2pmopn/Express-C/DB2ExpressC9/Xa.2/Xb.AjZr_0m973fVBNZX63eCwwrnyaoISX2bvOX3Ehc/Xc.db2exc_952_WIN_x86.zip/Xd./Xf.LPr.D1vk/Xg.4854742/Xi.swg-db2expresscviper2/XY.regsrvs/XZ.C7tZ8b_Fn0_ruc3stDVpbwY2QpI/db2exc_952_WIN_x86.zip

测试通过
1:dsn
2:driver

代码:
        private const string dsn = "DSN=OutBound";
        private const string conn = "Driver={IBM DB2 ODBC DRIVER};Database=sample;hostname=192.168.1.46;port=50000;protocol=TCPIP; uid=admin; pwd=admin";

private void button1_Click(object sender, EventArgs e)
        {
 //         OdbcDataReader reader = ExecuteReader(dsn, "select * from admin.vi_cs_precalloutcust");
            OdbcDataReader reader = ExecuteReader(conn, "select * from admin.vi_cs_precalloutcust");
            while (reader.Read())
           {
               
                if (!reader.IsDBNull(0))
                {
                    this.textBox1.Text += reader[0].ToString() + "\r\n";
                }
           }
           reader.Close();

}

public static OdbcDataReader ExecuteReader(string connectionStr, string strSQL)
        {
            OdbcConnection connection = new OdbcConnection(connectionStr);

OdbcCommand cmd = new OdbcCommand(strSQL, connection);
            try
            {
                connection.Open();
                OdbcDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                return myReader;
            }
            catch (SqlException E)
            {
                 WriteLogFile.WriteMessage("DBOper.log", "error DBHelper.ExecuteReader " + E.Message.ToString());
            }
            return null;
        }

二:使用c#通过
连接到IBM db2

参见https://www6.software.ibm.com/developerworks/cn/dmdd/library/tutorials/dm0504hoy/tutorial/index.html

部署:需要客户端安装DB2 Runtime Client Lite。大约500多M。下载地址ftp://ftp.software.ibm.com/ps/products/db2/fixes2/english-us/db2winIA32v8/fixpak/FP17_WR21416/FP17_WR21416_RTLITE.zip

测试未通过。发布到另外一台机器,总是显示“Length cannot be less than zero. Parameter name: length ”的错误。
代码:
vs2005测试通过,引用IBM.Data.DB2.dll(net2.0版本),引用IBM.Data.ApplicationBlocks.DB2.dll

private void button1_Click(object sender, EventArgs e)
        {
            DB2DataReader dr = null;
            string connString = "DATABASE=SAMPLE;SERVER=192.168.1.46:50000;User ID=admin;Password=admin;";
            try
            {
                dr = DB2Helper.ExecuteReader(connString, CommandType.Text, "select * from vi_cs_precalloutcust");

while (dr.Read())
                {
                    txtResults.Text = txtResults.Text + dr.GetValue(0) + " (" + dr.GetValue(1) + ")" + Environment.NewLine;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
            }

if (dr != null)
            {
                ((IDisposable)dr).Dispose();

}

}

编程使用c#连接到IBM db2的两种方式的更多相关文章

  1. Java并发编程(十三)线程间协作的两种方式:wait、notify、notifyAll和Condition

    在现实中,需要线程之间的协作.比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权.因为生产者如果 ...

  2. python 之 并发编程(线程理论,开启线程的两种方式,进程与线程的区别,线程对象的其他方法)

    9.9 线程理论 1.什么是线程 线程指的是一条流水线的工作过程 进程根本就不是一个执行单位,进程其实是一个资源单位,一个进程内自带一个线程,线程才是执行单位 2.进程VS线程 同一进程内的线程们共享 ...

  3. Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition

    Java并发编程:线程间协作的两种方式:wait.notify.notifyAll和Condition 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作.比如说最经典的生产者-消费者 ...

  4. javascript消除字符串两边空格的两种方式,面向对象和函数式编程。python oop在调用时候的优点

    主要是javascript中消除字符串空格,比较两种方式的不同 //面向对象,消除字符串两边空格 String.prototype.trim = function() { return this.re ...

  5. 19、Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition

    Java并发编程:线程间协作的两种方式:wait.notify.notifyAll和Condition 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作.比如说最经典的生产者-消费者 ...

  6. python 之 并发编程(开启子进程的两种方式,进程对象的属性)

    第九章并发编程 同一个程序执行多次是多个进程 import time import os ​ print('爹是:',os.getppid()) #父进程PID,(pycharm) print('me ...

  7. python制作电脑定时关机办公神器,另含其它两种方式,无需编程!

      小编本人目前就是在电脑面前工作,常常会工作到凌晨两三点还在为自己的梦想奋斗着.有时在办公椅上就稀里糊涂睡着了,我相信有很多朋友和我一样,这样是很不好的.第一对身体不好,第二对电脑不好.   对身体 ...

  8. 我给女朋友讲编程CSS系列(1) –添加CSS样式的3种方式及样式表的优先权

    如果说,原生态就是美,那么,我们就没有必要穿衣打扮. 网页是什么? 说白了,网页就是一堆[html标签]有序的搭配,让[CSS属性值]整整容,请[Javascript语言]处理一下事件. 一个人的整容 ...

  9. java并发编程(十五)内存可见两种方式 加锁和volatile

    1.volatile变量是一种稍弱的同步机制在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比synchronized关键字更轻量级的同步机制. ...

随机推荐

  1. c++小游戏——扫雷

    #include<cstdio> #include<cstring> #include<algorithm> #include<conio.h> #in ...

  2. 万能RecyclerView的数据适配器BaseRecyclerViewAdapterHelper

    今天楼主才发现github上有这么一个好用的开源代码,充满好奇心的楼主马上使用了,特地分享给大家. 此项目的github地址: https://github.com/CymChad/BaseRecyc ...

  3. [leetcode] 309. Best Time to Buy and Sell Stock with Cooldown(medium)

    原题 思路: 状态转移 出售股票的状态,最大利润有两种可能. 一,和昨天一样不动:二,昨天持有的股票今天卖掉. sell[i] = max(sell[i-1],buy[i-1] + prices[i] ...

  4. u盘制作启动盘步骤以及安装win10步骤

    1.下载制作工具:微PE工具箱V2.0 http://www.wepe.com.cn/download.html 2.默认制作启动盘 3.下载win10镜像 ed2k://|file|cn_windo ...

  5. 使用canvas来完成线性渐变和径向渐变的功能

    fillStyle的第二种使用情况就是渐变色的填充.渐变色就分为线性渐变色和径向渐变色.   线性渐变:大致分为两步 这里又会使用到canvas的两个新的函数.   第一步 : 使用一个新的函数cre ...

  6. jmeter环境变量

    jmeter环境变量配置jmeter环境变量时,同时也需要配置Java变量(jdk最好使用1.7及1.7以上的版本)1.配置jdk环境变量安装jdk正常安装,一路默认就好,记住安装路径,配置环境变量时 ...

  7. 05-k8s调度器、预选策略、优选函数

    目录 k8s调度器.预选策略.优选函数 节点选择过程 调度器 预选策略 优选函数 高级调度设置机制 node选择器/node亲和调度 pod亲和性 污点调度 Taints 与 Tolerations ...

  8. 实现万行级excel导出---poi--ooxm的应用和采坑

    xl_echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!! - ...

  9. Python版:Selenium2.0之WebDriver学习总结_实例1

    Python版:Selenium2.0之WebDriver学习总结_实例1  快来加入群[python爬虫交流群](群号570070796),发现精彩内容. 实属转载:本人看的原文地址 :http:/ ...

  10. iOS Xcode6 新建OC Category文件

    首先:File -> New File 接下来界面如下,选择Objective-C File,然后Next 在这里选择 Category 即可