掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
在Visual Studio.NET Beta 1版本中訪問IBM DB2等非SQL Server數(shù)據(jù)庫通常是使用ADO.NET的ODBC方法,而在Beta 2中則改用OLE DB方式存取數(shù)據(jù)庫。

在茄子河等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網(wǎng)站建設、成都網(wǎng)站設計 網(wǎng)站設計制作定制網(wǎng)站制作,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,成都品牌網(wǎng)站建設,全網(wǎng)整合營銷推廣,外貿(mào)網(wǎng)站建設,茄子河網(wǎng)站建設費用合理。
Beta1中連接字符串主要需聲明數(shù)據(jù)庫的ODBC的DNS名字,但Beta 2中的OLE DB連接的字符串就較復雜了,使用的類也不相同。由于DB2等數(shù)據(jù)庫在大型機等應用中使用非常廣泛,.NET自然會全力支持此類編程開發(fā),為此,下文將逐步闡述OLE DB的DB2開發(fā)。
C#數(shù)據(jù)庫編程實例之OLE DB for DB2驅(qū)動
首先,Visual Studio.NET和Windows 2000 Server中并未直接提供DB2的OLE DB驅(qū)動,因此需下載Microsoft Host Integration Server 2000軟件,該軟件包中含OLE DB Provider and ODBC driver for DB2,需下載Server端軟件包,并在安裝時選擇安裝Data Integration,安裝完成后就可使用其OLE DB的DB2驅(qū)動了。
C#數(shù)據(jù)庫編程實例之設置數(shù)據(jù)庫連接
首先,我們需配置好DB2的客戶端設置,打開視圖選單項中的服務器資源管理器,在其數(shù)據(jù)連接中新增一個連接,指定程序選項時選擇Microsoft OLE DB Provider for DB2,下一步連接選項中,填寫如下信息:
Data Source: QCDB(請酌情修改)
Network:TCP/IP
IP Address:數(shù)據(jù)庫服務器地址
Network Port:DB2服務端口
Username:數(shù)據(jù)庫訪問權(quán)限的用戶名
Password:該用戶口令
Database initial Catalog:QCDB
Package collection:QCDB
default schema:Userid
下一步高級選項中選各自國家語言對應的code page及CCSID,最后按確認鍵完成創(chuàng)建連接。
假設QCDB這個DB2數(shù)據(jù)庫中有一名為address的新數(shù)據(jù)表,其包含四個字段:name、email、age和address,我們可用服務器資源管理器打開上述連接及該數(shù)據(jù)表,可輸入數(shù)條中文記錄,確定中文字符能否正常顯示。
C#數(shù)據(jù)庫編程實例之為項目增加數(shù)據(jù)庫連接
用Visual Studio新建一個ASP.NET項目,激活服務器資源管理器的上述連接,用鼠標將該連接拖至新建的Web Form上,則OLE DB需要的連接字符參數(shù)全部自動寫入Web Form程序中,上述連接生成的語句如下:
- this.oleDbConnection1.ConnectionString
- = @Provider=DB2OLEDB;
- Cache Authentication=False;
- Integrated Security=;
- Password=freebsd9;
- Persist Security Info=True;
- User ID=userid;Initial Catalog=qcdb;
- Data Source=qcdb;Mode=ReadWrite;
- Extended Properties=;
- APPC Remote LU Alias=;
- APPC Local LU Alias=;
- APPC Mode Name=QPCSUPP;
- Network Transport Library=TCPIP;
- Host CCSID=37;PC Code Page=1282;
- Network Address=172.23.169.1;
- Network Port=4444;Package Collection=qcdb;
- Default Schema=userid;Alternate TP Name=;
- Process Binary as Character=False;
- Units of Work=RUW
用服務器資源管理器工具生成連接可避免錯寫各種參數(shù),從而可快速地實現(xiàn)數(shù)據(jù)庫連接。
Web Form顯示數(shù)據(jù)庫數(shù)據(jù)
為Web Form新增一個OleDbDataAdapter類的對象oleDbDataAdapter1,為其選擇數(shù)據(jù)連接時選上面建立的連接如:qcdb.qcdb.userid,選擇使用SQL語句,生成SQL語句如:Select ?from address,最后提示完成。再為Web Form新增一個DataSet并命名為dataSet1用來放查詢得到的數(shù)據(jù)。新增一個顯示數(shù)據(jù)用的DataGrid命名為DataGird1,最后在Web Form的程序段中的Page_Init部分中增加如下代碼:
- oleDbConnection1.Open();
- //打開數(shù)據(jù)庫連接
- oleDbDataAdapter1.Fill(dataSet1,Address);
- //將得來的數(shù)據(jù)填入dataSet
- DataGrid1.DataBind();
- //綁定數(shù)據(jù)
- oleDbConnection1.Close();
- //關(guān)閉連接
編譯運行后,可見address表中內(nèi)容被顯示于Web Form的DataBrid中。OleDbConnection1等屬性設置都在生成的Web Form設計代碼中。
C#數(shù)據(jù)庫編程實例之增加數(shù)據(jù)庫數(shù)據(jù)
在Web Form上新增對應字段數(shù)量個數(shù)的TextBox,及一個button,為該按鍵增加Click響應事件代碼如下:
- this.oleDbInsertCommand1.CommandText
- = INSERT INTO ADDRESS(NAME, EMAIL, AGE, ADDRESS)
- VALUES (+TextBox1.Text+,+TextBox2.Text+,
- +TextBox3.Text+,+TextBox4.Text+);
- oleDbInsertCommand1.Connection.Open();
- //打開連接
- oleDbInsertCommand1.ExecuteNonQuery();
- //執(zhí)行該SQL語句
- oleDbInsertCommand1.Connection.Close();
- //關(guān)閉連接
實際編程中,我們需注意SQL語句的單引號問題以及數(shù)字和字符串處理問題。
刪除數(shù)據(jù)庫數(shù)據(jù)
在Web Form上新增一個TextBox5及一個按鍵,要執(zhí)行刪除時,在TextBox5中填入要刪除記錄的name字段的值,然后按該按鍵執(zhí)行刪除。該按鍵代碼如下:
- System.Data.OleDb.OleDbCommand oleDeleteCommand1
- new System.Data.OleDb.OleDbCommand();
- this.oleDbDataAdapter1.DeleteCommand
- = oleDeleteCommand1;
- //聲明為oleDb命令
- oleDeleteCommand1.CommandText
- =DELETE FROM ADDRESS WHERE NAME=+TextBox5.Text+;
- oleDeleteCommand1.Connection
- = this.oleDbConnection1;
- //指明連接
- oleDeleteCommand1.Connection.Open();
- //打開連接
- oleDeleteCommand1.ExecuteNonQuery();
- //執(zhí)行SQL語句
- oleDeleteCommand1.Connection.Close();
- //關(guān)閉連接
對于增加、更新和刪除操作后的DataGrid刷新,可執(zhí)行類似的Select SQL語句即可。
上述代碼可供各種非SQL Server數(shù)據(jù)庫編程參考和使用,微軟為此提供了如OLE DB Provider for Oracle、AS/400和VSAM等眾多驅(qū)動,OLE DB方式確實提供了較ODBC方式更為廣泛的數(shù)據(jù)存取范圍,如可存取Access庫中的數(shù)據(jù)、郵件系統(tǒng)中的數(shù)據(jù)、Web上的文本及圖形、目錄服務等等,符合ODBC標準的數(shù)據(jù)源就是符合OLE DB標準的數(shù)據(jù)存儲的子集,而且OLE DB的API是符合COM標準和基于對象的API,這些都是較原ODBC方式有大幅改進,從而為綜合的數(shù)據(jù)集成處理提供了更廣泛的支持。
通過以上講解,筆者希望使讀者初步了解在Visual Studio.NET中,以DB2為后臺數(shù)據(jù)庫時應用系統(tǒng)的開發(fā)步驟,也希望讀者舉一反三,領(lǐng)會思想和方法,以便更好地應用到自己的系統(tǒng)開發(fā)中。
上述程序在中文Windows 2000 Server、IBM DB2和Visual Studio.NET Beta 2環(huán)境中編譯并正常運行。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流