這應該是一個簡單的操作,但我的字段沒有被更新。我很可能會做出錯誤的事情,希望對這裏的某個人來說很明顯。無法更新myDataTable.Rows中的值
我想要的是在綁定到我的GridView之前剝離日期時間。我的查詢運行並填充DataSet。然後我們這樣做:
try
{
myDataAdapter.Fill(myDataSet);
DataTable myDataTable = myDataSet.Tables[0];
// strip time off WEDate
foreach (DataRow row in myDataTable.Rows)
{
DateTime dt = DateTime.Parse(row["WEDate"].ToString());
string myNewValue = dt.ToShortDateString();
row["WEDate"] = myNewValue;
}
BudgetGridView.DataSource = myDataTable;
BudgetGridView.DataBind();
}
沒有例外拋出,頁面加載,並且時間仍在WEDate上。我在那裏插入「string myNewValue」來調試並確認它實際上被剝離了。它是。因此,違規行似乎是:
row["WEDATE"] = myNewValue
該更新沒有發生。
任何線索?
更新:根據這個帖子,我做了以下更新: How to update a value in a column in a datatable which is in a foreachloop?
row.EndEdit();
myDataTable.AcceptChanges();
仍然沒有喜悅。該字段未被更新。
你能做到這一點是有沒有myNewValue的日期? – Zaki
爲什麼不在前端執行該操作,例如通過['BoundField.DataFormatString'](http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.boundfield.dataformatstring .aspx)? 'DataFormatString =「{0:d}」' –
@Sam:是的,那裏有一個日期。我把這一行寫入,這樣我就可以通過調試器來查看是否真的被剝離了。它是。 – DJGray