我正在尝试做一些你认为非常简单的事情。我正在从数据库中检索记录以便在detailsview中显示。但是,在向用户显示记录之前,我想删除dateTime值的时间戳。所以我试图通过创建一个接收列名和数据行实例的函数来完成以下工作。在代码中更新数据表中的数据行
protected void FormatDateFromRow(string columnName, DataRow row)
{
if (row[columnName] != DBNull.Value)
{
DateTime dateTime;
bool result = DateTime.TryParse(row[columnName].ToString(), out dateTime);
if (result)
{
row.BeginEdit();
row[columnName] = dateTime.ToShortDateString();
row.EndEdit();
row.AcceptChanges();
}
}
}
我在一块看起来像这样的逻辑中使用了这种方法。
if (dt != null)
{
if (dt.Rows.Count > 0 && dt.Columns.Contains("SystemName"))
{
DataRow row = dt.Rows[0];
lblHeader.Text = row["SystemName"].ToString();
FormatDateFromRow("GrantedDate", row);
FormatDateFromRow("ExpireDate", row);
dt.AcceptChanges();
dvPackage.DataSource = dt;
dvPackage.DataBind();
}
但是,当显示detailsView时,时间戳仍然存在。有人可以帮忙吗?
感谢, GS
您传递给格式方法的列的类型是什么?如果您阅读DateTime并尝试存储字符串,我想知道为什么这不会引发异常... – CodeZombie 2012-03-12 21:17:03
数据库中的列是DateTime,但传入我的格式化方法的字符串是列的字符串名称。 – gsirianni 2012-03-12 21:23:38
转换工作正常。当我添加dateTime.ToShortDateString(); 到监视列表它返回我想要存储在r [columnName]中的值,但是当我像 – gsirianni 2012-03-12 21:26:13