明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線(xiàn)學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

ASP.NET中數(shù)據(jù)庫(kù)的設(shè)置初步----DataSet設(shè)置數(shù)據(jù)庫(kù)

[摘要]前面我們已經(jīng)說(shuō)了如何操作數(shù)據(jù)庫(kù),但幾乎全部是通過(guò)OleDbCommand和OleDbDataReader來(lái)做的,這次我們說(shuō)說(shuō)如何通過(guò)OleDbDataAdapter來(lái)操作數(shù)據(jù)庫(kù)!關(guān)于OleDbDataAdapter的用法實(shí)際上我們?cè)谝郧耙呀?jīng)講過(guò)了,由于OleDbDataAdapter是DataSe...

前面我們已經(jīng)說(shuō)了如何操作數(shù)據(jù)庫(kù),但幾乎全部是通過(guò)OleDbCommand和OleDbDataReader來(lái)做的,這次我們說(shuō)說(shuō)如何通過(guò)OleDbDataAdapter來(lái)操作數(shù)據(jù)庫(kù)!關(guān)于OleDbDataAdapter的用法實(shí)際上我們?cè)谝郧耙呀?jīng)講過(guò)了,由于OleDbDataAdapter是DataSet和數(shù)據(jù)源之間建立聯(lián)系的一個(gè)橋梁,而DataSet用于對(duì)單層數(shù)據(jù)、XML 數(shù)據(jù)和關(guān)系數(shù)據(jù)進(jìn)行存儲(chǔ)、遠(yuǎn)程處理和編程!。
我們?cè)?jīng)講過(guò)利用Command來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行增加、刪除和修改操作,但是我們利用DataSet和DataAdapter能夠更加方便的對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,基本是我們可以認(rèn)為DataSet是專(zhuān)門(mén)為WEB而設(shè)計(jì)的,這也是ADO.NET和ADO的一個(gè)重要的區(qū)別。
下面是DataSet和SQL數(shù)據(jù)的的關(guān)系圖, 通過(guò)這個(gè)圖我們可以看出DataSet和DataAdapter以及SQL數(shù)據(jù)庫(kù)的關(guān)系。


下面我們來(lái)講解一下如何利用DataSet和DataAdapter來(lái)操作上據(jù)庫(kù)
MyConnection.Open(); //打開(kāi)數(shù)據(jù)庫(kù),請(qǐng)參考前面文章的內(nèi)容
MyCommand.Connection = MyConnection; //設(shè)置Command,請(qǐng)參考前面文章的內(nèi)容
MyCommand. CommandText = “select * from admin”; //設(shè)置Command,參考前面文章的內(nèi)容
OleDbDataAdapter MyDataAdapter = new OleDbDataAdapter(); //定義OleDbDataAdapte對(duì)象
MyDataAdapter.SelectCommand = MyCommand; //設(shè)置OleDbDataAdapte對(duì)象的SelectCommand屬性
System.Data.DataSet MyDataSet = new System.Data.DataSet(); //定義DataSet
MyDataAdapter.Fill(MyDataSet,"admin"); //通過(guò)OleDbDataAdapte對(duì)象的SelectCommand屬性填充MyDataSet
MyConnection.Close(); //關(guān)閉數(shù)據(jù)庫(kù)

整個(gè)過(guò)程分以下幾步:
1.建立數(shù)據(jù)庫(kù)連接(打開(kāi)數(shù)據(jù)庫(kù),請(qǐng)參考前面文章的內(nèi)容)
2.建立OleDbDataAdapter對(duì)象!
3.實(shí)例化OleDbDataAdapter對(duì)象!
4.建立一個(gè)DataSet對(duì)象,執(zhí)行SQL語(yǔ)句得到的表添加到其中
5.關(guān)閉數(shù)據(jù)庫(kù)連接
通過(guò)上面的步驟我們就可以使用DataBind將DataSet中的數(shù)據(jù)綁定到特定的控件上了!(下一章我們將講解如何邦定數(shù)據(jù)庫(kù))
我們說(shuō)過(guò)但是我們可以利用DataSet和DataAdapter能夠更加方便的對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,如何通過(guò)OleDbDataAdapter來(lái)執(zhí)行數(shù)據(jù)庫(kù)的操作的,我們只需要對(duì)DataSet中的數(shù)據(jù)進(jìn)行增加、刪除、修改等操作,然后在將DataSet提交給數(shù)據(jù)庫(kù)即可
//利用利用DataSet和DataAdapter操作數(shù)據(jù)庫(kù)
public Boolean DoDB()
{
MyConnection.Open(); //打開(kāi)數(shù)據(jù)庫(kù),請(qǐng)參考前面文章的內(nèi)容
MyCommand.Connection = MyConnection; //設(shè)置Command,請(qǐng)參考前面文章的內(nèi)容
MyCommand. CommandText = “select * from admin”; //設(shè)置Command,參考前面文章的內(nèi)容
OleDbDataAdapter MyDataAdapter = new OleDbDataAdapter(); //定義OleDbDataAdapte對(duì)象
MyDataAdapter.SelectCommand = MyCommand; //設(shè)置OleDbDataAdapte對(duì)象的SelectCommand屬性
System.Data.DataSet MyDataSet = new System.Data.DataSet(); //定義DataSet
MyDataAdapter.Fill(MyDataSet,"admin"); //通過(guò)OleDbDataAdapte對(duì)象的SelectCommand屬性填充MyDataSet

OleDbCommandBuilder MyCommandBuild = new OleDbCommandBuilder(MyDataAdapter);//關(guān)聯(lián)DataSet和數(shù)據(jù)庫(kù)的操作的,必不可少
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”表中的數(shù)據(jù)提交給數(shù)據(jù)庫(kù),完成數(shù)據(jù)庫(kù)的更新
MyConnection.Close();//關(guān)閉數(shù)據(jù)庫(kù)
}

這個(gè)程序和我們前面用到的利用Command的delete、insert、update例程是執(zhí)行同樣的功能的,我這里改成了用MyDataAdapter來(lái)達(dá)到同樣的效果!

要通過(guò)MyDataAdapter執(zhí)行對(duì)數(shù)據(jù)庫(kù)的操作,我們要有下面的幾步:

1. 建立數(shù)據(jù)庫(kù)連接MyConnection
2. 實(shí)例化OleDbDataAdapter對(duì)象!
3. 建立一個(gè)DataSet對(duì)象,并把執(zhí)行select語(yǔ)句得到的記錄添加到其中
4. 建立OleDbCommandBuilder對(duì)象! 并讓它與我們前面的OleDbDataAdapter對(duì)象關(guān)聯(lián)!語(yǔ)句如下:OleDbCommandBuilder MyCommandBuild = new OleDbCommandBuilder(MyDataAdapter);
5. 對(duì)DataSet中包含表的特定記錄進(jìn)行增加、刪除、修改

6. 執(zhí)行OleDbDataAdapter對(duì)象的Update命令更新數(shù)據(jù)庫(kù),語(yǔ)句如下: MyDataAdapter.Update(ds,"notes");
7. 關(guān)閉數(shù)據(jù)庫(kù)連接

總結(jié):
DataSet是ADO.NET中非常重要的內(nèi)容,也是ADO.NET和ADO的區(qū)別的一個(gè)重要表現(xiàn),特別適合成批的數(shù)據(jù)操作,也是數(shù)據(jù)棒定的重要來(lái)源。OleDbDataAdapter是DataSet和數(shù)據(jù)源之間建立聯(lián)系的一個(gè)橋梁,要熟練的使用DataSet我們需要熟練的掌握OleDbDataAdapter。下一章我們將講述Data