我在数据库中写了几行文本文档。除了日期字段外,我已经设置了所有内容。我需要将其更改为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");
}
答案 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() + ""));
}
}