1. 程式人生 > 實用技巧 >C# winform讀寫Access資料庫簡單示例

C# winform讀寫Access資料庫簡單示例

最近在做使用C#訪問Access資料庫的專案,之前沒有使用過Access,所以中間查了不少資料,對相關操作有了一個簡單的印象。本文簡單介紹如何使用C#讀取Access資料,並將修改重新儲存回Access

開發環境(winform):

1. visual studio 2019

2. .net framework 4.7.2

3. access 2007

4. access資料表tn_member,表結構內容如下圖:

1-200Q31TI6442.png

幾個類介紹:

1. OleDBConnection:表示與資料來源的開放連線,這個類就像access資料庫與外部的一個介面,外部程式的操作都通過此介面

2.OleDbDataAdapter:用於從access資料來源檢索資料並填充 DataSet 中的表,同時 DataAdapter 還將對 DataSet 的更改解析回資料來源。

3.OleDbCommandBuilder:自動生成用於協調所做的更改命令,它能夠根據OleDbDataAdapter的SelectCommand屬性自動的生成InsertCommand,UpdateCommand與DeleteCommand等命令。

它們的關係可以用下圖表示:

1-200Q31T03H63.png

讀寫流程:

1. 使用連線字串,構造OleDbConnection物件,同時呼叫open方法開啟連線

2. 使用connection物件,構造OleDbDataAdapter介面卡物件

3. 構造OleDbCommandBuilder物件,並將此物件和OleDbDataAdapter介面卡物件關聯

4. 使用OleDbDataAdapter介面卡物件填充DataTable或將變動儲存到Access資料庫

具體例項程式碼如下:

publicpartialclassForm1:Form
{
//連線字串
privatestringconnStr=@"Provider=Microsoft.ACE.OLEDB.12.0;JetOLEDB:DataBasePassword=;DataSource=E:\db\data.accdb;";

//宣告
privateOleDbConnectionconn=null;
privateOleDbDataAdapteradapter=null;
privateDataTabledt=null;

publicForm1()
{
InitializeComponent();
}

privatevoidbtn_read_Click(objectsender,EventArgse)
{
//連線資料庫,需要傳遞連線字串
conn=newOleDbConnection(connStr);
//開啟資料庫連線
conn.Open();

//"Select*fromtn_member"為SQL語句,意思是從資料庫中選擇叫做“tn_member”的表,“conn”為連線
adapter=newOleDbDataAdapter("Select*fromtn_member",conn);
//CommandBuilder對應的是資料介面卡,需要傳遞引數
varcmd=newOleDbCommandBuilder(adapter);

//在記憶體中建立一個DataTable,用來存放、修改資料庫表
dt=newDataTable();
//通過介面卡把表的資料填充到記憶體dt
adapter.Fill(dt);

//把資料顯示到介面
dataGridView1.DataSource=dt.DefaultView;
}

privatevoidbtn_write_Click(objectsender,EventArgse)
{
try
{
//按下按鈕後,把記憶體中修改的部分傳遞給介面卡,再通過介面卡傳遞給資料庫
adapter.Update(dt);
//清除記憶體中存放的表資料
dt.Clear();
//重新讀取已經改變過的表資料
adapter.Fill(dt);
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
finally
{

}
}
}

執行程式碼,點選讀取access按鈕,讀取資料,如下圖:

1-200Q31TS1245.png

然後修改name欄位的值,點選寫access按鈕,可以看到結果如下:

winform介面:

1-200Q31T93C47.png

access資料表:

1-200Q31T94O35.png