首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

ASP.NET 使用 OleDB 連接 Access 資料庫完整教學

     編輯:ASP.NET 基礎

前言

在 ASP.NET 開發中,連接 Microsoft Access 資料庫是常見需求。本文將詳細介紹如何使用 System.Data.OleDb 命名空間下的 OleDbConnection、OleDbCommand 與 OleDbDataReader 類別,建立帶密碼保護的 Access 資料庫連線、執行 SQL 查詢,並將結果以 HTML 表格形式輸出。

必要命名空間

using System.Data.OleDb;

連接字串設定

針對有密碼的 Access 2003 (.mdb) 檔案,連接字串格式如下:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\pro\web\access_test\app_data\Northwind.mdb;Jet OLEDB:Database Password=111111
  • Provider:指定 OLE DB 提供者,Access 2003 使用 Jet 4.0。
  • Data Source:資料庫檔案完整路徑。
  • Jet OLEDB:Database Password:資料庫開啟密碼。

完整程式碼範例

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        // 連接字串,請依實際路徑修改
        string sqlconn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\pro\web\access_test\app_data\Northwind.mdb;Jet OLEDB:Database Password=111111";

        using (OleDbConnection myConnection = new OleDbConnection(sqlconn))
        {
            myConnection.Open();

            // 查詢「運貨商」資料表所有欄位
            using (OleDbCommand myCommand = new OleDbCommand("SELECT * FROM 運貨商", myConnection))
            using (OleDbDataReader myReader = myCommand.ExecuteReader())
            {
                // 輸出 HTML 表格標頭
                Response.Write("<table border=1 cellspacing=0 cellpadding=2>");
                Response.Write("<tr bgcolor=#DAB4B4>");
                for (int i = 0; i < myReader.FieldCount; i++)
                {
                    Response.Write("<td>" + myReader.GetName(i) + "</td>");
                }
                Response.Write("</tr>");

                // 逐筆讀取並輸出資料列
                while (myReader.Read())
                {
                    Response.Write("<tr>");
                    for (int i = 0; i < myReader.FieldCount; i++)
                    {
                        Response.Write("<td>" + myReader[i].ToString() + "</td>");
                    }
                    Response.Write("</tr>");
                }
                Response.Write("</table>");
            } // using 區塊結束時自動關閉 DataReader 與 Connection
        }
    }
}

關鍵點說明

  1. using 區塊:確保 OleDbConnection、OleDbCommand、OleDbDataReader 等實作 IDisposable 的物件在使用完畢後正確釋放資源,避免連線洩漏。
  2. ExecuteReader():回傳 OleDbDataReader,提供唯讀、順向的資料流讀取方式,效能優於 DataSet。
  3. FieldCount 與 GetName():動態取得欄位數量與欄位名稱,適應資料表結構變更。
  4. 編碼處理:中文資料表名稱需確認資料庫編碼與網頁編碼一致,避免亂碼。

執行結果

Access 資料表格輸出結果

進階建議

  • 實際專案建議將連接字串存放在 Web.config 的 <connectionStrings> 區段,方便維護與部署。
  • 若使用 Access 2007 以上 (.accdb) 格式,Provider 應改為 Microsoft.ACE.OLEDB.12.0,並安裝對應的 Access Database Engine。
  • 生產環境請參數化查詢,防範 SQL 注入攻擊。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved