`

datatable 删除行

    博客分类:
  • C#
J# 
阅读更多

先列出正确的写法,如果你只想马上改错就先复制吧,

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->protectedvoiddeleteDataRow(intRowID,DataTabledt)
{
for(inti=dt.Rows.Count-1;i>=0;i--)
{
if(Convert.ToInt32(dt.Rows[i]["RowID"])==RowID)
dt.Rows.RemoveAt(i);
}
}

如果你有时间想学习一下就继续看下面列出可能出错的可能性吧。

  1.如果只是想删除datatable中的一行,可以用DataRow的delete,但是必须要删除后让DataTable知道,所以就要用到.AcceptChanges()方法,原因是这种删除只是标识性删除,就像我们通常在数据库中用到的IsDelete字段。

  2.彻底删除就要用到datatable的.Rows.Remove(DataRow dr)方法,同理也只是删除一行可以,如果要循环删除请继续往下看。

  3.循环彻底删除就要用.Rows.RemoveAt(int index)方法,所以如果你是foreach的爱好者,在此请你换换口味,还有如果你是for的i++的忠实fans也希望你能换个思维。先看一下上面程序的正向写法(错误的,不可用)

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->for(inti=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的下面网上查找删除,这样即使这行符合条件被删除了,上面的行依旧不受影响。

分享到:
评论

相关推荐

    C# datatable删除多行

    网上关于C# datatable删除多行的博文很多,但是没有一个能解决问题的,我这个C#源码,可以实现指定删除某些行,多行可以任意选择, 测试可用

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

    本文实例讲述了C#中DataTable删除行的方法,分享给大家供大家参考之用。具体实现方法如下: 自己的删除例子(drTemp是表,gvSummary是dev 的gridview。单击右键点击grid删除): 1、dtTemp.Rows.RemoveAt(gvSummary....

    Datatable删除行的Delete和Remove方法的区别介绍

    1、在C#中,如果要删除DataTable中的某一行,大约有以下几种办法: •使用DataTable.Rows.Remove(DataRow),或者DataTable.Rows.RemoveAt(index);可以直接删除行•datatable.Rows[i].Delete()。Delete()之后需要...

    JQuery DataTable删除行后的页面更新利用Ajax解决

    使用Jquery的DataTable进行数据表处理非常方便,常遇到的一个问题就是删除一行后页面必须进行更新,下面与大家分享下使用Ajax的解决方法

    C#在DataTable中根据条件删除某一行的实现方法

    我们通常的方法是把数据源放在DataTable里面,但是偶尔也会需要把不要的行移除,怎么实现呢,下面通过代码给大家介绍c# atatable 删除行的方法,需要的朋友一起看下吧

    DataTable的常见使用Demo

    DataTable的常见使用,datetable的自定义方法,select的四种重载,项目中常用的筛选及排序。新datatable的赋值

    VB.NET的DataTable常用方法总结

    VB.NET的DataTable常用方法总结

    Flutter DataTable数据表

    使用 DataTable就需要了解以下组件 DataColumn,描述数据表中的列。 DataRow,包含数据表中行的数据。 DataCell,包含数据表中单个单元格的数据。 PaginatedDataTable,它显示数据表中的部分数据,并提供对...

    两个DataTable合并, 并保留合并状态

    两个DataTable合并, 并保留合并状态。 如果合并后记录有变更,记录的状态为修改。 如果合并后记录是新增,记录状态为新增。 如果合并后听记录是现有记录,记录状态为删除。

    C# datatable 不能通过已删除的行访问该行的信息处理方法

    采用datatable.Rows[i].Delete()删除行后再访问该表时出现出现“不能通过已删除的行访问该行的信息”的错误

    .net C# DataTable联结函数

    函数JoinDataTable主要功能是,将两个DataTable变量通过联结的字段进行 Inner Join 或 Left Join 的联结,如果2个变量的联结字段相同,则删除其中1个字段,如果不同则保留。

    Jquery Datatable editor 1.5.4破解版本

    如果发现有问题,就在dataTables.editor.min.js文件把 var K4O={'P7':"ex",这行之前的代码删除就可以使用。 ----------------------------------------------------------------------------------- 版本试用结束...

    无刷新DataTable(分页、排序、得到行信息)

    AjaxDataTable:无刷新DataTable(可实现:无刷新分页、无刷新排序、无刷新删除行、无刷新得到行信息)

    datatable的例子使用--增加删除修改查询

    datatable的一个简单实用,可以参照http://blog.csdn.net/u011563903 一篇博客的介绍

    使用DataTable+cookie做的购物车

    使用Vs2008 linq DataTable+cookie 购物车主要功能: 把商品添加到购物车(订购) 删除购物车中已订购的商品、 修改购物车中某一件商品的订购数量 清空购物车 显示购物车中商品的清单及数量、价格 如果有什么问题...

Global site tag (gtag.js) - Google Analytics