Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在DataTable列中添加前导零_C#_Asp.net_Datatable - Fatal编程技术网

C# 如何在DataTable列中添加前导零

C# 如何在DataTable列中添加前导零,c#,asp.net,datatable,C#,Asp.net,Datatable,如果长度小于6位,我尝试在datatable列值前面添加零 例如:我在datatable中有一列“SRNumber”,其值为123、2345、56、34523等,我希望得到像000123、0023455、000056、034523这样的结果 注意:我希望操作Datatable中的数据,而不是检索数据的sql查询中的数据。我见过一些解决方案,我们可以在字符串或变量中添加前导零,但在我的案例中,我们希望对datatable列中的所有值都添加前导零。正如eddie_cat所说, 循环遍历值并更新所需字

如果长度小于6位,我尝试在datatable列值前面添加零

例如:我在datatable中有一列“SRNumber”,其值为123、2345、56、34523等,我希望得到像000123、0023455、000056、034523这样的结果


注意:我希望操作Datatable中的数据,而不是检索数据的sql查询中的数据。我见过一些解决方案,我们可以在字符串或变量中添加前导零,但在我的案例中,我们希望对datatable列中的所有值都添加前导零。

正如eddie_cat所说, 循环遍历值并更新所需字段

foreach(DataRow dr in mydatatable)
{
      dr[myfield] = String.Format("{0:0000}", int.parse(dr[myfield]))
}
请注意,您应该首先将字符串转换为int。
我使用的示例
int.parse(…)
可能会引发异常,如果
dr[myfield]
dbnull
我不确定您是在寻找SQL解决方案还是C解决方案,所以我将提供SQL,因为其他人已经为您提供了C解决方案:

 UPDATE MYTABLE

 SET SRNumber = RIGHT('000000' + SRNumber,6)

 WHERE len(SRNumber) < 6
更新MYTABLE
设置SRNumber=RIGHT('000000'+SRNumber,6)
其中len(SRNumber)<6

好的,我在@eddie_猫答案的帮助下找到了答案。这就是我所做的

foreach (DataRow row in table.Rows)
{
      row["SRNumber"] = row["SRNumber"].ToString().PadLeft(6, '0');
}
table.AcceptChanges();

这里,“SRNumber”是我添加前导零的列名。我希望这对某人有所帮助。

如果你想对所有的值都这样做,那么就对这些值进行循环并应用PadLeft…@eddie_cat:我知道如何对一个字符串或变量进行零填充。但是在SO中没有与DataTable列相关的特定解决方案。