如何在DataTable列中添加前导零

时间:2014-08-19 18:34:02

标签: c# asp.net datatable

如果长度小于6位,我正试图在数据表列值前添加零。

例如:我在数据表中有一个列“SRNumber”,其值为123,2345,56,3452等,并希望得到我的结果,如000123,002345,000056,034523。

注意:我想操纵Datatable中的数据,而不是在sql查询中检索数据。我已经看到了我们可以将前导零添加到字符串或变量的解决方案,但在mycase中我想为数据表列中的所有值添加。

3 个答案:

答案 0 :(得分:1)

好吧,我在@eddie_cat答案的帮助下想出来了。这就是我所做的。

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

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

答案 1 :(得分:0)

eddie_cat说, 循环遍历值并更新必填字段

foreach(DataRow dr in mydatatable)
{
      dr[myfield] = String.Format("{0:0000}", int.parse(dr[myfield]))
}

请注意,您应该首先将字符串转换为int。 如果int.parse(...)dr[myfield],我使用dbnull的示例可能会抛出异常。

答案 2 :(得分:0)

我不确定您是在寻找SQL解决方案还是C#解决方案,所以我提供SQL,因为其他人已经为您提供了C#解决方案:

 UPDATE MYTABLE

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

 WHERE len(SRNumber) < 6