使用DataSet刪除記錄和使用DataSet更新記錄非常的相似,DataSet刪除記錄的步驟如下所示。
q 創建一個Connection對象。
q 創建一個DataAdapter對象。
q 初始化適配器。
q 使用數據適配器的Fill方法執行SELECT命令,並填充DataSet。
q 執行SqlCommandBuilder方法生成UpdataCommand方法。
q 創建DataTable對象並指定相應的DataSet中的表。
q 創建DataRow對象並查找需要修改的相應行。
q 使用Delete方法刪除該行。
q 使用Updata方法進行數據更新。
在刪除記錄前,首先需要創建連接,示例代碼如下所示。
string str = "server='(local)';database='mytable';uid='sa';pwd='sa'";
SqlConnection con = new SqlConnection(str);
con.Open();
string strsql = "select * from mynews";
上述代碼創建了與數據庫的連接,並編寫SQL查詢語句來填充DataSet。填充DataSet對象需使用DataAdapter,示例代碼如下所示。
SqlDataAdapter da = new SqlDataAdapter(strsql, con);
SqlCommandBuilder build = new SqlCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds, "datatable");
編寫完成后,需要創建DataTable對象對DataSet中相應的數據進行操作,其代碼和更新記錄基本相同,示例代碼如下所示。
DataTable tb = ds.Tables["datatable"];
tb.PrimaryKey = new DataColumn[] { tb.Columns["id"] };
DataRow row = tb.Rows.Find(3);
在進行刪除之前,同樣需要找到相應的行,來指定刪除語句所需要刪除的行,示例代碼如下所示。
row.Delete();
讀者可以看到,DataSet刪除方法與更新方法不同的地方只操作語句的不同,在更新中使用的是Update()方法,而在刪除中使用的是Delete()方法。
注意:當使用Delete方法刪除記錄行的時候,可以通過調用DataRow對象的RejectChanges方法取消對記錄的刪除,當使用該方法刪除記錄行時,該行的狀態會恢復為Unchanged。
在刪除完畢后,同樣需要保持DataSet中的數據和數據庫中的數據的一致性,示例代碼如下所示。
da.Update(ds, "datatable");
使用Update方法能夠使DataSet中的數據和數據庫中的數據保持一致性,在ASP中,這種方法也比較常見。
