C#中DataTable刪除行的方法分析

來源:互聯網
上載者:User

標籤:like   temp   plugin   清空   too   必須   命名規範   play   point   

本文執行個體講述了C#中DataTable刪除行的方法,分享給大家供大家參考之用。具體實現方法如下:

自己的刪除例子(drTemp是表,gvSummary是dev 的gridview。單擊右鍵點擊grid刪除):

1、dtTemp.Rows.RemoveAt(gvSummary.FocusedRowHandle);

2、dtTemp.Rows[gvSummary.FocusedRowHandle].Delete();  dtTemp.AcceptChanges();

在C#中,如果要刪除DataTable中的某一行,大致有以下幾種辦法:

1.

如果只是想刪除datatable中的一行,可以用DataRow的delete

,但是必須要刪除後讓DataTable知道,所以就要用到.AcceptChanges()方法,原因是這種刪除只是標識性刪除,就像我們通常在資料庫中用到的IsDelete欄位。

Delete()之後需要datatable.AccepteChanges()方法確認完全刪除,因為Delete()只是將相應列的狀態標誌為刪除,還可以通過datatable.RejectChanges()復原,使該行取消刪除。

2.

徹底刪除就要用到datatable的.Rows.Remove(DataRow dr)方法

,同理也只是刪除一行可以,如果要迴圈刪除請繼續往下看。

3.

迴圈徹底刪除就要用.Rows.RemoveAt(int index)方法

,所以如果你是foreach的愛好者,在此請你換換口味,還有如果你是for的i++的忠實fans也希望你能換個思維。先看一下上面程式的正向寫法(錯誤的,不可用)

for (int i = 0, j = dt.Rows.Count; i < j; i++){  if (Convert.ToInt32(dt.Rows[i]["RowID"]) == RowID) dt.Rows.RemoveAt(i);}

這個的錯誤在於datatable的RemoveAt()會在刪除後更新dataTable的index,所以你要刪除的index可能已經不是你的符合Convert.ToInt32(dt.Rows[i][“RowID”]) == RowID的index了,甚者還會拋出異常,說你訪問的index不存在。

還是要慎用datatable.Rows.RemoveAt(i),若要刪除多行,可以連續用Delete(),然後採用AccepteChanges()方法確認刪除。


使用select方法:

先把要刪除的記錄標記一下,然後select刪除行,執行個體代碼如下:

for (int i = 0; i < len; i++){  if (((CheckBox)Rp.Items[i].FindControl("CB")).Checked)  { dt.Rows[i]["C0"] = 1;//標記要刪除的記錄  }}foreach (DataRow r in dt.Select("c0=1")){  r.Delete();}Rp.DataSource = dt;Rp.DataBind();

感興趣的朋友可以測試回合本文執行個體以加深理解,希望本文所述對大家C#程式設計的學習有所協助。

除聲明外, 跑步客文章均為原創,轉載請以連結形式標明本文地址
  C#中DataTable刪除行的方法分析

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23491.html






相關內容C#實現百度ping推送功能的方法Windows系統中使用C#編寫藍芽通訊程式的簡單一實例詳解C#面相對象編程中的繼承特性C#實現清空資源回收筒的方法
C#實現Ping的方法小結C#如何解析http報文C#的winform控制項命名規範C#中String類常用方法匯總

C#中DataTable刪除行的方法分析

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.