【问题标题】:How to add leading zeros in DataTable columns如何在 DataTable 列中添加前导零
【发布时间】:2014-08-19 18:34:02
【问题描述】:

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

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

注意:我希望在 Datatable 中操作数据,而不是在检索数据的 sql 查询中。我已经看到了我们可以在字符串或变量中添加前导零的解决方案,但在我的情况下,我希望对数据表列中的所有值都这样做。

【问题讨论】:

标签: c# asp.net datatable


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    正如eddie_cat 所说, 遍历值并更新必填字段

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

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

    【讨论】:

      【解决方案3】:

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

       UPDATE MYTABLE
      
       SET SRNumber = RIGHT('000000' + SRNumber,6)
      
       WHERE len(SRNumber) < 6
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-26
        • 2016-07-11
        • 1970-01-01
        相关资源
        最近更新 更多