首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

Visual Studio .NET 對接 DB2 實戰:OLE DB 驅動安裝、連線配置與 CRUD 完整範例

     編輯:DB2 教學

技術背景:從 ODBC 到 OLE DB 的演進

Visual Studio .NET Beta 1 使用 ADO.NET ODBC 橋接器訪問 DB2;Beta 2 起轉向 OLE DB Provider for DB2,提供更豐富的資料存取介面(支援非關聯資料源、COM 標準、物件導向 API)。本文以 VS.NET Beta 2 + DB2 + Windows 2000 Server 為基準環境,演示完整開發流程。

一、取得並安裝 OLE DB for DB2 驅動

  1. 下載 Microsoft Host Integration Server 2000(含 OLE DB Provider & ODBC Driver for DB2)。
  2. 安裝時選擇 Data Integration 元件(Server 端安裝包)。
  3. 安裝完成後,系統將註冊 DB2OLEDB Provider,可在「資料連結」屬性頁的 Provider 標籤中看到 Microsoft OLE DB Provider for DB2。

二、配置資料庫連線(Server Explorer 圖形化)

  1. 開啟 VS.NET → 檢視 → 伺服器總管。
  2. 右鍵 資料連接 → 新增連接。
  3. Provider 選 Microsoft OLE DB Provider for DB2,點「下一步」。
  4. 填寫連線屬性:
屬性 範例值 說明
Data SourceQCDBDB2 目錄別名
NetworkTCP/IP通訊協定
IP Address172.23.169.1DB2 伺服器 IP
Network Port4444DB2 監聽埠(預設 50000)
User Nameuserid資料庫認證帳號
Passwordfreebsd9對應密碼
Initial CatalogQCDB資料庫名稱
Package CollectionQCDB套件集合(DB2 端預編譯單元)
Default Schemauserid隱含 Schema,避免 SQL 需全限定名
  1. 進階頁籤設定 Host CCSID=37(EBCDIC)、**PC Code Page=1282**(或 950/1252 視中文環境),確保中文正確編碼。
  2. 測試連線成功後確定,連接將出現在伺服器總管樹狀圖中。

三、將連接拖入 Web Form 自動生成連線字串

在 ASP.NET 專案中,從伺服器總管將連接拖曳至 .aspx 設計介面,VS 會自動在 .aspx.cs 產生 OleDbConnection 元件並填入完整連線字串:

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";

優勢:避免手工拼寫導致參數遺漏/拼寫錯誤;跨專案複製連接元件即可複用。

四、資料顯示:OleDbDataAdapter + DataSet + DataGrid

  1. 工具箱拖入 OleDbDataAdapter → 選擇上述連接 → 選「使用 SQL 陳述式」 → 輸入 SELECT * FROM address 完成精靈。
  2. 右鍵 DataAdapter → 生成 DataSet → 命名 dataSet1。
  3. 拖入 DataGrid(命名 DataGrid1),設定 DataSource=dataSet1、DataMember=address。
  4. Page_Load(或 Page_Init)撰寫繫結碼:
private void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        oleDbConnection1.Open();
        oleDbDataAdapter1.Fill(dataSet1, "address");
        DataGrid1.DataBind();
        oleDbConnection1.Close();
    }
}

五、新增資料:參數化 INSERT 避免注入

介面放置 4 個 TextBox(Name, Email, Age, Address)+ 1 個 Button(btnInsert)。

protected void btnInsert_Click(object sender, EventArgs e)
{
    string sql = "INSERT INTO ADDRESS (NAME, EMAIL, AGE, ADDRESS) VALUES (?, ?, ?, ?)";
    using (OleDbCommand cmd = new OleDbCommand(sql, oleDbConnection1))
    {
        cmd.Parameters.AddWithValue("@p1", TextBox1.Text);
        cmd.Parameters.AddWithValue("@p2", TextBox2.Text);
        cmd.Parameters.AddWithValue("@p3", TextBox3.Text);
        cmd.Parameters.AddWithValue("@p4", TextBox4.Text);

        oleDbConnection1.Open();
        cmd.ExecuteNonQuery();
        oleDbConnection1.Close();
    }
    // 重新繫結刷新 Grid
    Page_Load(sender, e);
}

關鍵點:使用 ? 位置參數 + Parameters.AddWithValue,徹底解決單引號轉義與 SQL 注入問題。

六、刪除資料:參數化 DELETE

介面放置 TextBox5(輸入要刪除的 Name)+ Button(btnDelete)。

protected void btnDelete_Click(object sender, EventArgs e)
{
    string sql = "DELETE FROM ADDRESS WHERE NAME = ?";
    using (OleDbCommand cmd = new OleDbCommand(sql, oleDbConnection1))
    {
        cmd.Parameters.AddWithValue("@p1", TextBox5.Text);
        oleDbConnection1.Open();
        cmd.ExecuteNonQuery();
        oleDbConnection1.Close();
    }
    Page_Load(sender, e);
}

七、更新資料與通用重繫結模式

更新邏輯同理採參數化 UPDATE ... SET col=? WHERE key=?。為避免重複程式碼,建議封裝 BindGrid() 方法:

private void BindGrid()
{
    dataSet1.Clear();
    oleDbDataAdapter1.Fill(dataSet1, "address");
    DataGrid1.DataBind();
}

八、擴展性說明

Microsoft 另提供 OLE DB Provider for Oracle、AS/400、VSAM、Indexing Service、Active Directory 等驅動,同一套 OleDbConnection/Command/Adapter 程式碼只需更換連線字串即可切換資料源,實現真正的「統一資料存取層」。

環境驗證記錄

  • 作業系統:中文 Windows 2000 Server
  • 資料庫:IBM DB2
  • 開發工具:Visual Studio .NET Beta 2
  • 結果:編譯通過、中文顯示正常、CRUD 操作全部成功。

掌握 OLE DB for DB2 的安裝、配置與參數化程式設計模式,即可在 .NET 平台高效構建連接大型主機資料庫的企業級應用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved