社区
C#
帖子详情
dataTable 执行select 时提示 集合已修改;枚举操作可能无法执行
zywhao
2010-05-30 03:23:05
一个datatable 中存放着3万多记录
现在有10个线程不停的从串口收到数据,并提交给 datatable来实现更新或添加
偶尔就在执行 ds.table[0].select("userID='"+xxxx+"'")
时就会出现 集合已修改;枚举操作可能无法执行 的错误
如何解决
...全文
501
5
打赏
收藏
dataTable 执行select 时提示 集合已修改;枚举操作可能无法执行
一个datatable 中存放着3万多记录 现在有10个线程不停的从串口收到数据,并提交给 datatable来实现更新或添加 偶尔就在执行 ds.table[0].select("userID='"+xxxx+"'") 时就会出现 集合已修改;枚举操作可能无法执行 的错误 如何解决
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
随智阔
2012-01-17
打赏
举报
回复
http://www.cnblogs.com/adandelion/archive/2008/01/05/1027212.html集合已修改;枚举操作可能无法执行。使用foreach 循环删除DataRow的时候的问题! 该死的AcceptChanges() Row.elete() Remove(Row)使用不同。
zywhao
2010-07-09
打赏
举报
回复
是的, 必须要用lock
测试通过,发分~~
YeahBingo
2010-05-30
打赏
举报
回复
在多线程执行时,对于可变对象的读写操作最后都要加上读写锁,就像操作系统中的PV操作一样
CGabriel
2010-05-30
打赏
举报
回复
在多线程环境中, 更新,添加, select 的时候都需要用 lock 把 datatable 锁定
wuyq11
2010-05-30
打赏
举报
回复
执行foreach循环的时候,不能改变正在迭代的对象
改用for循环
c#
集合
已
修改
;
可能
无法
执行
枚举
操作
执行
以下语句报错: foreach (DataRow dr in dt.rows) { dtmx.Rows.Remove(dr); } 1.出现这个问题的原因是,使用 foreach 进行循环遍历导致
集合
发生改变,因此第一次循环结束,再一次循环
时
报错:
集合
已
修改
巴拉巴拉,,, 2.使用 for 循环代替 foreach ,完美解决问题 for (int r = dt.Rows.Count - ...
C#
集合
已
修改
;
可能
无法
执行
枚举
操作
/********************************************************************** * C#
集合
已
修改
;
可能
无法
执行
枚举
操作
* 说明: * 之前搞Java的
时
候就很清楚使用多线程
操作
集合
的
时
候,很容易出现线程 * 安全的问题,还有就是
操作
线程的
时
候容易出现
集合
被
修改
的问题。 ...
C# 对
DataTable
中按条件进行筛选和更新。
当我们频繁的对数据库进行
操作
时
,
可能
造成CPU使用率过高,这
时
我们可以先将数据表读取到
DataTable
,然后在必要的
时
候再更新到数据库中。 以下是
DataTable
中对数据的选择和更新
操作
。采用
DataTable
.
Select
()方法。采用该方法获取的结果是DataRow对象数组。
Select
()有三种重载(以下资料来自MSDN): MSDN关于
Select
()方法内容链接 以下依次...
56、数据
集合
操作
与事务处理全解析
本文深入解析了数据
集合
操作
与事务处理的核心技术,涵盖数据
集合
中的搜索、合并与数据视图使用方法,并详细介绍了ADO.NET中基于SqlTransaction和System.Transactions的事务管理机制。通过代码示例和对比分析,帮助开发者掌握在不同场景下高效
操作
数据
集合
和确保数据一致性的最佳实践。
C#
111,129
社区成员
642,540
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章