【问题标题】:Update DataTable.Rows[i].ItemArray[j] value更新 DataTable.Rows[i].ItemArray[j] 值
【发布时间】:2014-06-04 16:04:00
【问题描述】:

我有一个 DataTable,我在页面加载事件中从 CSV 文件填充。

在向用户显示数据之前,我需要先按日期排序,然后按小时排序。

它对数据进行了很好的排序,但是当它们再次显示给用户时,我想格式化日期列,使其以“dd/MM/yyyy”格式显示。

我正在使用以下代码来做到这一点

DateTime d;
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            for (int j = 0; j < dt.Rows[i].ItemArray.Length; j++)
            {
                if (j == 0)
                {
                    d = DateTime.Parse(dt.Rows[i][j].ToString());
                    dt.Rows[i].ItemArray[j] = (string.Format("{0:dd/MM/yyyy}", d)).ToString(); 
                }

            }

dt.Rows[i].ItemArray[j] 的值永远不会更新为我需要的格式。

我不知道为什么它不这样做

【问题讨论】:

标签: c# datetime datatable


【解决方案1】:

假设您的日期单元格中的数据类型是字符串:

string strDate = (!(dt.Rows[i][j] is DbNull)) ? DateTime.Parse(dt.Rows[i][j]).ToString("dd/MM/yyyy") : "Unknown";
dt.Rows[i][j] = strDate;

你可以走得更远:

string strDate = "Unknown";
DateTime date;
if (DateTime.TryParse(dt.Rows[i][j], out date))
{
    strDate = date.ToString("dd/MM/yyyy");
}

dt.Rows[i][j] = strDate;

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    相关资源
    最近更新 更多