面我們已經說了如何操作資料庫,但幾乎全部是通過OleDbCommand和OleDbDataReader來做的,這次我們說說如何通過OleDbDataAdapter來操作資料庫!關於OleDbDataAdapter的用法實際上我們在以前已經講過了,由於OleDbDataAdapter是DataSet和資料來源之間建立聯絡的一個橋樑,而DataSet用於對單層資料、XML 資料和關係資料進行儲存、遠端和編程!。
我們曾經講過利用Command來對資料庫進行增加、刪除和修改操作,但是我們利用DataSet和DataAdapter能夠更加方便的對資料庫進行操作,基本是我們可以認為DataSet是專門為WEB而設計的,這也是ADO.NET和ADO的一個重要的區別。
下面是DataSet和SQL資料的的關係圖, 通過這個圖我們可以看出DataSet和DataAdapter以及SQL資料庫的關係。
下面我們來講解一下如何利用DataSet和DataAdapter來操作上據庫
MyConnection.Open(); //開啟資料庫,請參考前面文章的內容
MyCommand.Connection = MyConnection; //設定Command,請參考前面文章的內容
MyCommand. CommandText = “select * from admin”; //設定Command,參考前面文章的內容
OleDbDataAdapter MyDataAdapter = new OleDbDataAdapter(); //定義OleDbDataAdapte對象
MyDataAdapter.SelectCommand = MyCommand; //設定OleDbDataAdapte對象的SelectCommand屬性
System.Data.DataSet MyDataSet = new System.Data.DataSet(); //定義DataSet
MyDataAdapter.Fill(MyDataSet,"admin"); //通過OleDbDataAdapte對象的SelectCommand屬性填充MyDataSet
MyConnection.Close(); //關閉資料庫
整個過程分以下幾步:
1.建立資料庫連接(開啟資料庫,請參考前面文章的內容)
2.建立OleDbDataAdapter對象!
3.執行個體化OleDbDataAdapter對象!
4.建立一個DataSet對象,執行SQL語句得到的表添加到其中
5.關閉資料庫連接
通過上面的步驟我們就可以使用DataBind將DataSet中的資料繫結到特定的控制項上了!(下一章我們將講解如何邦定資料庫)
我們說過但是我們可以利用DataSet和DataAdapter能夠更加方便的對資料庫進行操作,如何通過OleDbDataAdapter來執行資料庫的操作的,我們只需要對DataSet中的資料進行增加、刪除、修改等操作,然後在將DataSet提交給資料庫即可
//利用利用DataSet和DataAdapter操作資料庫
public Boolean DoDB()
{
MyConnection.Open(); //開啟資料庫,請參考前面文章的內容
MyCommand.Connection = MyConnection; //設定Command,請參考前面文章的內容
MyCommand. CommandText = “select * from admin”; //設定Command,參考前面文章的內容
OleDbDataAdapter MyDataAdapter = new OleDbDataAdapter(); //定義OleDbDataAdapte對象
MyDataAdapter.SelectCommand = MyCommand; //設定OleDbDataAdapte對象的SelectCommand屬性
System.Data.DataSet MyDataSet = new System.Data.DataSet(); //定義DataSet
MyDataAdapter.Fill(MyDataSet,"admin"); //通過OleDbDataAdapte對象的SelectCommand屬性填充MyDataSet
OleDbCommandBuilder MyCommandBuild = new OleDbCommandBuilder(MyDataAdapter);//關聯DataSet和資料庫的操作的,必不可少
foreach(DataRow dr in MyDataSet.Tables["Admin"].Rows)
{
if(dr["Admin_Code"].ToString().Trim().Equals("a"))
{
dr.Delete(); //刪除DataSet 中的行
}
}
MyDataSet.Tables["Admin"].Rows[0][0] = "ss";//更新DataSet中第一行第一列的值
string [] dd = new String[3]{"a","b","v"};
MyDataSet.Tables["Admin"].Rows.Add(dd);//增加一行
MyDataAdapter.Update(MyDataSet,"Admin");//將DataSet中”Admin”表中的資料提交給資料庫,完成資料庫的更新
MyConnection.Close();//關閉資料庫
}
這個程式和我們前面用到的利用Command的delete、insert、update常式是執行同樣的功能的,我這裡改成了用MyDataAdapter來達到同樣的效果!
要通過MyDataAdapter執行對資料庫的操作,我們要有下面的幾步:
1. 建立資料庫連接MyConnection
2. 執行個體化OleDbDataAdapter對象!
3. 建立一個DataSet對象,並把執行select語句得到的記錄添加到其中
4. 建立OleDbCommandBuilder對象! 並讓它與我們前面的OleDbDataAdapter對象關聯!語句如下:OleDbCommandBuilder MyCommandBuild = new OleDbCommandBuilder(MyDataAdapter);
5. 對DataSet中包含表的特定記錄進行增加、刪除、修改
6. 執行OleDbDataAdapter對象的Update命令更新資料庫,語句如下: MyDataAdapter.Update(ds,"notes");
7. 關閉資料庫連接