程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#中DataTable刪除行的辦法剖析

C#中DataTable刪除行的辦法剖析

編輯:C#入門知識

C#中DataTable刪除行的辦法剖析。本站提示廣大學習愛好者:(C#中DataTable刪除行的辦法剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中DataTable刪除行的辦法剖析正文


本文實例講述了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#法式設計的進修有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved