c# - 在 foreach C# 期间更新数据表中的一行
问题描述
我正在寻找在您遍历所述数据表时修改数据表的最佳实践。
我正在获取数据表序列行号列中的最大值。在这个例子中它是 25。我在这个数据表中有很多零,我将一个一个地找到它们并将它们更改为 25+1,26+1,27+1 等等。我想知道会怎样在我编辑行的值时,不必创建另一个表并构建一个新表,这是最好的做法。
int maxSequenceNumber = Convert.ToInt32(dtNewOrderGuide.Compute("max([seqlinnum])", string.Empty));
foreach(DataRow row in dtNewOrderGuide.Rows)
{
if (row["seqlinnum"].ToString() == "0")
{
}
}
我的表示例
RowNumber | seqlinnum
1 | 1
2 | 10
3 | 15
4 | 25
5 | 0
6 | 0
7 | 0
8 | 0
9 | 0
10 | 0
解决方案
作为替代方案,在 foreach 上使用传统的 for 循环意味着不进行任何数据复制或任何操作,并且可能会更快地通过数据表运行
for(int i=0;i<table.Rows.Count;i++)
{
if (table.Rows[i]["seqlinnum"].ToString() == "0")
{
table.Rows[i]["seqlinnum"]=maxSequenceNumber; maxSequenceNumber++;
}
}
推荐阅读
- node.js - 无法连接到 Socket.io nodejs 服务器
- javascript - 可以在函数应该运行时设置计时器
- javascript - 使用 CSS 动画,如果我们需要再次对其进行动画处理,是否必须删除该类并将其添加回来?
- prometheus - AlertManager 记录“打开 alertmanager.yml:没有这样的文件或目录”并且无法启动
- c - 0xff 的意义
- python-3.x - 如何通过在 Python3 函数中执行文本文件行来实例化全局变量?
- typescript - 根据函数的返回值推断类型,其中函数参数是函数的记录
- sql - 如何根据 SELECT 查询 Postgresql 上的几列添加计数器 id 列
- j - 如何在 J 中获取字符串向量的外积?
- mysql - 如何使用 SQL 查找行中的重复字段