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

C# 操作 ADO.NET 存取 Access 資料庫完整指南

     編輯:C# 入門

四大基本操作

  1. 讀取資料(支援整數、字串、日期等型別)
  2. 新增資料(透過 SQL INSERT)
  3. 更新資料(透過 SQL UPDATE)
  4. 刪除資料(透過 SQL DELETE)

範例使用 Access 2000,其他資料庫只需修改連接字串。

環境準備

using System.Data;
using System.Data.OleDb;  // ADO.NET OLE DB 提供者
using System.Globalization; // 日期處理

專案需加入參考:System.Data.dll

連接字串設定

public const string DB_CONN_STRING = 
    "Driver={Microsoft Access Driver (*.mdb)}; " +
    "DBQ=D:\\CS\\TestDbReadWrite\\SimpleTest.mdb";

讀取資料流程

// 1. 開啟連線
OleDbConnection conn = new OleDbConnection(DB_CONN_STRING);
conn.Open();

// 2. 執行查詢
OleDbCommand cmd = new OleDbCommand("SELECT * FROM Person", conn);
OleDbDataReader dr = cmd.ExecuteReader();

// 3. 逐筆讀取
while (dr.Read())
{
    Console.WriteLine(dr["FirstName"]); // 以欄位名稱存取
}

// 4. 關閉資源(建議用 try/finally)
finally
{
    if (conn.State == ConnectionState.Open) conn.Close();
}

讀取不同資料型別


// 字串直接讀取
string name = dr["FirstName"].ToString();

// 整數需轉換
int ageOrdinal = dr.GetOrdinal("Age");
if (!dr.IsNull(ageOrdinal))
    int age = dr.GetInt32(ageOrdinal);

// 日期
DateTime updated = (DateTime)dr["Updated"];

使用 GetOrdinal 取得欄位索引,IsNull 檢查 NULL 避免例外。

新增、修改、刪除(ExecuteNonQuery)

// 新增
string sql = "INSERT INTO Person (Age, FirstName, Description, Updated) " +
             "VALUES (55, 'Bob', 'Is a Penguin', '2001/12/25 20:30:15')";
OleDbCommand cmd = new OleDbCommand(sql, conn);
cmd.Connection.Open();
int rows = cmd.ExecuteNonQuery(); // 回傳影響筆數

// 修改
sql = "UPDATE Person SET Age = 27 WHERE FirstName = 'Peter'";

// 刪除
sql = "DELETE FROM Person WHERE FirstName = 'Bobo'";

SQL 字串撰寫注意事項

  1. 數值型別:直接寫入,無引號
  2. 字串型別:單引號包裹 'text'
  3. 避免字串內含單引號(需跳脫或參數化)
  4. 日期時間:ISO 格式 'YYYY/MM/DD HH:MM:SS' 包單引號

錯誤處理模板

try
{
    // 資料庫操作
}
catch (Exception ex)
{
    Console.WriteLine("ERROR: " + ex.Message);
    Console.WriteLine("SQL: " + sql);
    Console.WriteLine("Conn: " + DB_CONN_STRING);
}
finally
{
    if (conn.State == ConnectionState.Open) conn.Close();
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved