用Visual C#中實現DB2資料庫編程(轉)

來源:互聯網
上載者:User
visual|編程|資料|資料庫 在Visual Studio.NET Beta 1版本中訪問IBM DB2等非SQL Server資料庫通常是使用ADO.NET的ODBC方法,而在Beta 2中則改用OLE DB方式存取資料庫。

Beta1中連接字串主要需聲明資料庫的ODBC的DNS名字,但Beta 2中的OLE DB串連的字串就較複雜了,使用的類也不相同。由於DB2等資料庫在大型主機等應用中使用非常廣泛,.NET自然會全力支援此類編程開發,為此,下文將逐步闡述OLE DB的DB2開發。

OLE DB for DB2驅動
首先,Visual Studio.NET和Windows 2000 Server中並未直接提供DB2的OLE DB驅動,因此需下載Microsoft Host Integration Server 2000軟體,該軟體包中含OLE DB Provider and ODBC driver for DB2,需下載Server端軟體包,並在安裝時選擇安裝Data Integration,安裝完成後就可使用其OLE DB的DB2驅動了。

設定資料庫連接
首先,我們需配置好DB2的用戶端設定,開啟視圖選單項中的伺服器總管,在其資料連線中新增一個串連,指定程式選項時選擇Microsoft OLE DB Provider for DB2,下一步串連選項中,填寫如下資訊:

Data Source: QCDB(請酌情修改)
Network:TCP/IP
IP Address:資料庫伺服器地址
Network Port:DB2服務連接埠
Username:資料庫存取權限的使用者名稱
Password:該使用者口令
Database initial Catalog:QCDB
Package collection:QCDB
default schema:Userid

下一步進階選項中選各自國家語言對應的code page及CCSID,最後按確認鍵完成建立串連。

假設QCDB這個DB2資料庫中有一名為address的新資料表,其包含四個欄位:name、email、age和address,我們可用伺服器總管開啟上述串連及該資料表,可輸入數條中文記錄,確定中文字元能否正常顯示。

為項目增加資料庫連接
用Visual Studio建立一個ASP.NET項目,啟用伺服器總管的上述串連,用滑鼠將該串連拖至建立的Web Form上,則OLE DB需要的串連字元參數全部自動寫入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"

用伺服器總管工具產生串連可避免錯寫各種參數,從而可快速地實現資料庫連接。

Web Form顯示資料庫資料
為Web Form新增一個OleDbDataAdapter類的對象oleDbDataAdapter1,為其選擇資料連線時選上面建立的串連如:qcdb.qcdb.userid,選擇使用SQL語句,產生SQL語句如:Select from address,最後提示完成。再為Web Form新增一個DataSet並命名為dataSet1用來放查詢得到的資料。新增一個顯示資料用的DataGrid命名為DataGird1,最後在Web Form的程式段中的Page_Init部分中增加如下代碼:

oleDbConnection1.Open();
//開啟資料庫連接
oleDbDataAdapter1.Fill(dataSet1,"Address");
//將得來的資料填入dataSet
DataGrid1.DataBind();
//綁定資料
oleDbConnection1.Close();
//關閉串連

編譯運行後,可見address表中內容被顯示於Web Form的DataBrid中。OleDbConnection1等屬性設定都在產生的Web Form設計代碼中。

增加資料庫資料
在Web Form上新增對應欄位數量個數的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();
//執行該SQL語句
oleDbInsertCommand1.Connection.Close();
//關閉串連

實際編程中,我們需注意SQL語句的單引號問題以及數字和字串處理問題。

刪除資料庫資料
在Web Form上新增一個TextBox5及一個按鍵,要執行刪除時,在TextBox5中填入要刪除記錄的name欄位的值,然後按該按鍵執行刪除。該按鍵代碼如下:

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();
//執行SQL語句
oleDeleteCommand1.Connection.Close();
//關閉串連

對於增加、更新和刪除操作後的DataGrid重新整理,可執行類似的Select SQL語句即可。

上述代碼可供各種非SQL Server資料庫編程參考和使用,微軟為此提供了如OLE DB Provider for Oracle、AS/400和VSAM等眾多驅動,OLE DB方式確實提供了較ODBC方式更為廣泛的資料存取範圍,如可存取Access庫中的資料、郵件系統中的資料、Web上的文本及圖形、目錄服務等等,符合ODBC標準的資料來源就是符合OLE DB標準的資料存放區的子集,而且OLE DB的API是符合COM標準和基於對象的API,這些都是較原ODBC方式有大幅改進,從而為綜合的Data Integration處理提供了更廣泛的支援。

通過以上講解,筆者希望使讀者初步瞭解在Visual Studio.NET中,以DB2為後台資料庫時應用系統的開發步驟,也希望讀者舉一反三,領會思想和方法,以便更好地應用到自己的系統開發中。

上述程式在中文Windows 2000 Server、IBM DB2和Visual Studio.NET Beta 2環境中編譯並正常運行。


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。