C# DataSet的基本用法

來源:互聯網
上載者:User

C#  DataSet的基本用法,引用自網上,搞不清楚具體原始來源:

首先我們需要開啟一個連接:

string MyConnString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:/test/test.mdb;";

string strComm = "select * from UserList";

ADOConnection MyConnection = new ADOConnection(MyConnString);

ADODataSetCommand MyComm = new ADODataSetCommand(strComm,MyConnection);

這裡我們為了講解方便,只在dataset存入一個表的內容:

DataSet MyDataSet = new DataSet();

MyComm.FillDataSet(MyDataSet,"UserList");

此時我們就獲得了一個擁有UserList表資料的DataSet。在講解DataSet之前,我們還需要瞭解DataSet的結構下面是DataSet的結構樹

DataSet

RelationsCollection

ExtendedProperties

TablesCollection  

DataTables

 

Rows

Columns

其它

由於我們研究的是DataTable,其它的我們暫時不管他們。一個DataSet中包含多個DataTable,一個DataTable又包含有多個Row,這就是我們操作DataSet的基礎啦:)

添加資料

添加一資料,從上面的列表中我們可以看出,其實就是添加一行row,這裡我們也來示範一下如何添加一行資料,我們程式一切以dataset為頂點,呵呵,如果tablescollection,rowscollection下去的話,還有一些煩人的dt.acceptchanges這些方法的調用,很煩人,還是一次搞定吧。

datarow dr=MyDataSet.Tables["UserList"].NewRow();

dr["UserName"] = "周訊";

dr["ReMark"] = "100";

dr["Comment"] = "漂亮MM";

MyDataSet.Tables["UserList"].Rows.Add(dr);

第一行,我們建立一個新的資料行,它用來儲存我們新加入的資料。然後我們在這個資料行中加入我們需要的資料。dr["username"]表明是對username欄位進行添加,你可以使用dr[1]來添加資訊,但是這需要我們事Crowdsourced Security Testing道欄位在資料表的位置,而且在不知道資料表結構的情況很難知道我們添加的資料的對應情況,所以還是用欄位名為好。

       最後我們使用RowsCollection的Add方法,將我們建立這一行加入到資料表中。

修改資料

知道如何添加資料後,修改資料也是很簡單的事情了.

MyDataSet.Tables["UserList"].Rows[0]["UserName"]="飛刀大哥";

這樣我們就修改了第一行資料中的UserName欄位。

刪除資料

刪除資料,主要是使用rowscollection提供的delete方法,看下面的程式也是很簡單的事情啦:)

MyDataSet.Tables["UserList"],Rows[0].Delete();

這一行資料就已經被刪除了。

恢複資料

有時候我們添加/修改資料會出現錯誤,這時候,就需要恢複原來的資料。下面的程式,顯示如何判斷是否有錯誤發生:

if(MyDataSet.HasErrors)

{

MyDataSet.RejectChanges();

}

首先我們檢查DataSet中是否有錯誤發生,如果有就使用RejectChanges()方法,恢複DataSet中的資料。注意這裡恢複是在DataSet中所有表以及表中DataRow中的資料,也就是在此交次操作的資料全部恢複。如果我們只需要恢複部分內容,我們可以使用DataTable或DataRow的RejectChanges(),這裡就不詳細講解了,使用方法和DataSet一樣,只是操作的對像不同而已。

探測dataset是否有改動

我們在將dataset送交給資料庫去儲存去,我們需要看看這個dataset是否已經被改動了。如果沒有改動,我們也就沒有必要去修改資料庫了。

if(mydataset.haschanges)

{

    //儲存

}else{

    //不進行任何操作

}

更新資料庫

我們上面的操作,都只是針對dataset的,沒有操作資料庫,但是我們的目的還是要將資料儲存到資料中去,所以我們這裡就需要調用datasetcommand的update方法。下面的程式顯示如何將dataset的資料交給資料庫。mycomm.update(mydataset);

很簡單的一句,呵呵。這裡要注意,如果一個DataSet中包含有多個表,而我們只更新一個,那我們就必須寫明更新的資料表名:

MyComm.Update(MyDataSet,"UserList");

當Update方法被調用後,DataSetCommand會將資料庫中的資料與DataSet中的資料相比較,對不相同的地方進行更新。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.