程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> 用Visual C#訪問DB2數據庫

用Visual C#訪問DB2數據庫

編輯:C#基礎知識

  在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砯rom 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 = "INSERTsintosADDRESS(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

  ADDRESSswheresNAME='"+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方式有大幅改進,從而為綜合的數據集成處理提供了更廣泛的支持。

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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved