C#與資料庫訪問技術總結(十七)

[0]發表於2014-12-01

使用DataSet物件訪問資料庫

  當對DataSet物件進行操作時,DataSet物件會產生副本,所以對DataSet裡的資料進行編輯操作不會直接對資料庫產生影響,而是將DataRow的狀態設定為added、deleted或changed,最終的更新資料來源動作將通過DataAdapter物件的update方法來完成。

    DataSet物件的常用方法如下。

  • void AcceptChanges():該方法用來提交DataSet裡的資料變化。
  • void clear():該方法用來清空DataSet裡的內容。
  • DataSet copy():該方法把DataSet的內容複製到其他DataSet中。
  • DataSet GetChanges():該方法用來獲得在DataSet裡已經被更改後的資料行,並把這些行填充到Dataset裡返回
  • bool HasChanges():如果DataSet在建立後或執行AcceptChanges後,其中的資料沒有發生變化,返回True,否則返回False。
  • void RejectChanges():該方法撤銷DataSet自從建立或呼叫AcceptChanges方法後的所有變化。

  DataSet物件一般是和DataAdapter物件配合使用。

  下面的程式碼演示瞭如何綜合使用DataSet和DataAdapter物件訪問資料庫。

//省略獲得連線物件的程式碼
 ……
//建立DataAdapter
string sql= " select * from user ";
SqlDataAdapter  sda=new SqlDataAdapter(sql, conn);
// 建立並填充Dataset
DataSet ds=new DataSet();
sda.fill(ds, "user");
//給Dataset建立一個副本,操作對副本進行,以免因誤操作而破壞資料
DataSet  dsCopy=ds.Copy();
DataTable  dt=ds.Table["user"];
//對DataTable中的DataRow和DataColumn物件進行操作
……
//最後將更新提交到資料庫中
sda.update(ds, "user");

 

     上述程式碼的主要業務流程如下。

    (1)建立DataAdapter和DataSet物件,並用DataAdapter的SQL語句生成的表填充到  DataSet的DataTable中。

    (2)使用DataTable對錶進行操作,例如做增、刪、改等動作。

    (3)使用DataAdapter的update語句將更新後的資料提交到資料庫中。

    另外,上述程式碼在操作DataSet前,為DataSet建立了一個副本,用宋避免誤操作。

相關文章