更改数据集中的一列

时间:2013-07-09 21:46:06

标签: c# sql-server dataset

我在数据库中写了几行文本文档。除了日期字段外,我已经设置了所有内容。我需要将其更改为MM-dd-yy,但我不断得到的结果是DB中的默认值,即MM / dd / yyy HH:mm:ss(2013年7月8日下午2:01:05)。日期列位于表格的中间,我一直在尝试通过添加if语句将其分解为三个部分而我能想到的一切,但它们都没有改变日期列。以下是我如何提取数据并编写数据。然后显示2个整数,一个字符串,一个日期,一个字符串和一个int。订单很好,它只是改变日期。

编辑:它写入所有正确的数据,它只是没有按我想要的方式显示日期。

foreach (DataRow row in jackTDataSet.Tables[0].Select(quer))
{
    foreach (object item in row.ItemArray)
    {
            writer.Write(String.Format("{0,-10}", item.ToString() + ""));
    }
    writer.WriteLine("\t");
}

1 个答案:

答案 0 :(得分:0)

你可以做这样的事情,你怎么会冒一个其他列可能被解析为DateTime的风险,并获得格式化的MM-dd-yy。就个人而言,我会在此重复你的迭代。如果你正在选择查询中的所有列,它是静态的并且不会改变(我不太可能知道但是在这里推出所有选项)你可以根据第二个for循环中显示的列名进行迭代这篇文章。

foreach (object item in row.ItemArray)
{
     DateTime parsed;
     if (DateTime.TryParse(item.ToString(), out parsed))
     {
          writer.Write(String.Format("{0,-10}", parsed.ToString("MM-dd-yy") + ""));
     }
     else 
     {
          writer.Write(String.Format("{0,-10}", item.ToString() + ""));
     }
}



foreach (DataColumn col in jackTDataSet.Tables[0].Columns)
{
     if (col.ColumnName == "Name of date Field ")
     {
         writer.Write(String.Format("{0,-10}", ((DateTime)row[col.ColumnName]).ToString("MM-dd-yy") + ""));
     }
     else 
     {
         writer.Write(String.Format("{0,-10}", row[col.ColumnName].ToString() + ""));
     }
}