欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2014年09月18日 15:06:16   投稿:shichen2014  
這篇文章主要介紹了C#中DataTable刪除行的方法,包括了常見的幾種刪除方法的分析,需要的朋友可以參考下

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

自己的刪除例子(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()方法,原因是這種刪除只是標識性刪除,就像我們通常在數(shù)據(jù)庫中用到的IsDelete字段。

Delete()之后需要datatable.AccepteChanges()方法確認完全刪除,因為Delete()只是將相應列的狀態(tài)標志為刪除,還可以通過datatable.RejectChanges()回滾,使該行取消刪除。

2.徹底刪除就要用到datatable的.Rows.Remove(DataRow dr)方法,同理也只是刪除一行可以,如果要循環(huán)刪除請繼續(xù)往下看。

3.循環(huán)徹底刪除就要用.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),若要刪除多行,可以連續(xù)用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#使用時序數(shù)據(jù)庫InfluxDB的教程詳解

    C#使用時序數(shù)據(jù)庫InfluxDB的教程詳解

    InfluxDB是一個開源的時序數(shù)據(jù)庫,可以自動處理時間序列數(shù)據(jù),這篇文章主要為大家詳細介紹了C#如何使用InfluxDB,感興趣的小伙伴可以跟隨小編一起了解下
    2023-11-11
  • C# Lambda表達式select()和where()的區(qū)別及用法

    C# Lambda表達式select()和where()的區(qū)別及用法

    這篇文章主要介紹了C# Lambda表達式select()和where()的區(qū)別及用法,select在linq中一般會用來提取最后篩選的元素集合,在lambda表達式中通常用where得到元素集合,需要的朋友可以參考下
    2023-07-07
  • C#利用PrintDocument定制打印單據(jù)的小例子

    C#利用PrintDocument定制打印單據(jù)的小例子

    這篇文章主要給大家介紹了關于C#利用PrintDocument定制打印單據(jù)的小例子,文中通過示例代碼介紹的非常詳細,對大家學習或者使用C#具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • C#文件上傳與下載的實現(xiàn)方法

    C#文件上傳與下載的實現(xiàn)方法

    這篇文章主要為大家詳細介紹了C#文件上傳與下載的實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • C#創(chuàng)建Windows服務的實現(xiàn)方法

    C#創(chuàng)建Windows服務的實現(xiàn)方法

    這篇文章主要介紹了C#創(chuàng)建Windows服務的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • 詳解WPF的InkCanvas選擇模式

    詳解WPF的InkCanvas選擇模式

    這篇文章主要介紹了WPF InkCanvas選擇模式的相關資料,幫助大家更好的理解和學習使用c# wpf,感興趣的朋友可以了解下
    2021-04-04
  • 利用Distinct()內置方法對List集合的去重問題詳解

    利用Distinct()內置方法對List集合的去重問題詳解

    這篇文章主要給大家介紹了關于利用Distinct()內置方法對List集合的去重問題的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • C#中枚舉類型和radiobox關聯(lián)操作的方法

    C#中枚舉類型和radiobox關聯(lián)操作的方法

    這篇文章主要介紹了C#中枚舉類型和radiobox關聯(lián)操作的方法,實例分析了C#中枚舉類型及與控件關聯(lián)操作的相關技巧,需要的朋友可以參考下
    2015-04-04
  • C#隨機生成Unicode類型字符串

    C#隨機生成Unicode類型字符串

    做測試時經常需要生成一些隨機數(shù)據(jù),最常見的就是生成隨機字符串。而且往往要生成Unicode字符串,有時還要特別指定生成的字符的語言范圍。下面是我覺得比較靈活的方法:
    2013-04-04
  • c#獲取圖片正確格式的方法

    c#獲取圖片正確格式的方法

    這篇文章主要介紹了c#獲取圖片正確格式的方法,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07

最新評論