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

C# ADO.NET 存取 Access 與 SQL Server 資料庫完整範例

     編輯:關於C#

開發環境

  • Windows 2000 / .NET Framework SDK Beta 2
  • Microsoft Access 2000 (本地) / SQL Server 7.0 (遠端)

核心命名空間

System.Data.OleDb:OLE DB 資料提供者,支援 Access、SQL Server 等。

五步驟存取流程

  1. 匯入命名空間:System、System.Data.OleDb、System.Windows.Forms
  2. 建立連線字串與 OleDbConnection
  3. 建立 SQL 指令與 OleDbCommand
  4. 開啟連線、執行命令、取得結果(OleDbDataReader / DataSet)
  5. 關閉連線、釋放資源

範例一:本地 Access 資料庫


string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + @"\my.mdb";
using (OleDbConnection conn = new OleDbConnection(connStr))
{
    conn.Open();
    string sql = "SELECT * FROM Customers WHERE City = 'Taipei'";
    using (OleDbCommand cmd = new OleDbCommand(sql, conn))
    using (OleDbDataReader dr = cmd.ExecuteReader())
    {
        while (dr.Read())
            Console.WriteLine($"{dr["Name"]}, {dr["Phone"]}");
    }
}

範例二:遠端 SQL Server(同樣用 OleDb)


string connStr = "Provider=SQLOLEDB;Server=192.168.1.100;Database=Northwind;Uid=sa;Pwd=pass;";
using (OleDbConnection conn = new OleDbConnection(connStr))
{
    conn.Open();
    // 參數化查詢防止 SQL Injection
    string sql = "INSERT INTO Orders (CustomerID, OrderDate) VALUES (?, ?)";
    using (OleDbCommand cmd = new OleDbCommand(sql, conn))
    {
        cmd.Parameters.AddWithValue("@cust", "ALFKI");
        cmd.Parameters.AddWithValue("@date", DateTime.Now);
        int rows = cmd.ExecuteNonQuery();
        Console.WriteLine($"異動筆數: {rows}");
    }
}

進階:DataSet 離線操作


string sql = "SELECT * FROM Products";
using (OleDbDataAdapter da = new OleDbDataAdapter(sql, connStr))
{
    DataSet ds = new DataSet();
    da.Fill(ds, "Products");
    // 離線修改
    ds.Tables["Products"].Rows[0]["UnitPrice"] = 99.9;
    // 更新回資料庫
    new OleDbCommandBuilder(da); // 自動產生 Insert/Update/Delete 命令
    da.Update(ds, "Products");
}

最佳實務提醒

  • 永遠使用 using 確保連線關閉,即使發生例外。
  • 優先使用參數化命令,避免字串拼接 SQL Injection 風險。
  • 連線字串放在 App.config connectionStrings 區段,勿硬編碼。
  • SQL Server 專案建議改用 System.Data.SqlClient(現 Microsoft.Data.SqlClient),效能與功能更完整。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved