亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

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

在C#中,如果要?jiǎng)h除DataTable中的某一行,大致有以下幾種辦法:

1.如果只是想刪除datatable中的一行,可以用DataRow的delete,但是必須要?jiǎng)h除后讓DataTable知道,所以就要用到.AcceptChanges()方法,原因是這種刪除只是標(biāo)識(shí)性刪除,就像我們通常在數(shù)據(jù)庫(kù)中用到的IsDelete字段。

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

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

3.循環(huán)徹底刪除就要用.Rows.RemoveAt(int index)方法,所以如果你是foreach的愛好者,在此請(qǐng)你換換口味,還有如果你是for的i++的忠實(shí)fans也希望你能換個(gè)思維。先看一下上面程序的正向?qū)懛ǎㄥe(cuò)誤的,不可用)

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

這個(gè)的錯(cuò)誤在于datatable的RemoveAt()會(huì)在刪除后更新dataTable的index,所以你要?jiǎng)h除的index可能已經(jīng)不是你的符合Convert.ToInt32(dt.Rows[i]["RowID"]) == RowID的index了,甚者還會(huì)拋出異常,說你訪問的index不存在。

還是要慎用datatable.Rows.RemoveAt(i),若要?jiǎng)h除多行,可以連續(xù)用Delete(),然后采用AccepteChanges()方法確認(rèn)刪除。

使用select方法:

先把要?jiǎng)h除的記錄標(biāo)記一下,然后select刪除行,實(shí)例代碼如下:

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

感興趣的朋友可以測(cè)試運(yùn)行本文實(shí)例以加深理解,希望本文所述對(duì)大家C#程序設(shè)計(jì)的學(xué)習(xí)有所幫助。

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

    詳解WPF的InkCanvas選擇模式

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

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

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

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

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

    C#隨機(jī)生成Unicode類型字符串

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

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

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

最新評(píng)論