搜索.net连接db2与as400的方式

使用ODBC或者是OLEDB data provider都可以与db2或者as400交互,但相应速度影响了程序的执行效率。

在阅读.net资料时知道了,采用DBMS产商提供的.net data provider可以提高.net访问其数据库的速度。

对于db2来说,采用OLEDB 方式,代码如下:

代码
OleDbConnection dbConn = new OleDbConnection();
dbConn.ConnectionString 
= "Provider=IBMDADB2;Database=XXX;Hostname=XXX.XXX.XXX.XXX;Protocol=TCPIP; Port=XXXX;Uid=XXX;Pwd=XXX;";
if (dbConn.State != System.Data.ConnectionState.Open)
      dbConn.Open();

DataSet ds 
= new DataSet();
OleDbDataAdapter da 
= new OleDbDataAdapter("select * from TABLEXXX;", dbConn);
da.Fill(ds);

GridView1.DataSource 
= ds;
GridView1.DataBind();
DateTime et 
= DateTime.Now;

TimeSpan span 
= et - bt;
Response.Write(
"执行使用" + span.Seconds + "秒时间");

 

采用db2方式代码如下:

 

代码
        DB2Connection dbConn = new DB2Connection();
        dbConn.ConnectionString 
= "Server=XXX.XXX.XXX.XXX:XXX;Database=XXXX;UID=XXX;PWD=XXX;";
        
if (dbConn.State != System.Data.ConnectionState.Open)
            dbConn.Open();

        DataSet ds 
= new DataSet();
        DB2DataAdapter da 
= new DB2DataAdapter("select * from TABLEXXX;", dbConn);
        da.Fill(ds);

        GridView1.DataSource 
= ds;
        GridView1.DataBind();
        DateTime et 
= DateTime.Now;

        TimeSpan span 
= et - bt;
        Response.Write(
"执行使用"+span.Seconds+"秒时间");

 

 

 两种方式同时读取同一张小数据量的数据表,第一次执行时都会花费较长一段时间,oledb会花费36秒,db2db会花费32秒时间。这4秒钟的价值在小数据量查询中可能没有能够体现多少。但如果有较大的数据量的时候,应该会有更大的差别。

 

对于as/400而言,i系列的db2,提供的数据库连接串会有所不同。对于.net framework的支持,windows Client Access 5.3以下只提供OLEDB的连接方式,而iDb2Db的连接方式只有在5.3以上。对于.net framework2.0的支持,却要有windows Client Access6.1以上。因为各种条件限制,这边暂时没有时间完成这部分的测试。

随便,as/400的windows Client Access是与400小型机绑定出售的,所以一般网络上找不到公司已购买的以外的版本,ibm官网上提供的是SP包,下载安装是可以,但好像用处不大。

 

posted @ 2010-07-06 11:25  郑宇  阅读(1179)  评论(0编辑  收藏  举报