0
我DataTable中創建列,如:數據表日期列
headerTable.Columns.Add(VendInvoice.Date, typeof(???));
我不知道我怎樣才能增加只是一個日期列,我知道如何添加DATETIME列。
我DataTable中創建列,如:數據表日期列
headerTable.Columns.Add(VendInvoice.Date, typeof(???));
我不知道我怎樣才能增加只是一個日期列,我知道如何添加DATETIME列。
BCL中沒有實現沒有時間的日期的類型。
即使有,DataColumn
類也不會支持它。 Here is the list of types you're allowed to use.對於按時間順序排列的數據,您有DateTime
和TimeSpan
- 就是這樣。
你能做什麼,如果你想這個DataTable
傳遞給呼叫者誰可能不知道所需的唯一日期語義的,是附加一個事件處理程序DataTable
本身可復位一天的時間:
private void DataTable_RowChanged(object sender, DataRowChangedEventArgs e)
{
if ((e.Action & DataRowAction.Add) != 0) ||
(e.Action & DataRowAction.Change) != 0))
{
DateTime dt = (DateTime)e.Row[DateColumn];
if (dt != dt.Date)
e.Row[DateColumn] = dt.Date;
}
}
// Later ...
dataTable.RowChanged += DataTable_RowChanged;
請注意,條件邏輯對於防止事件處理程序中的無限遞歸是必需的。
我真的不認爲我會這樣做,說實話。相反,我只是使用DateTime.Date
方法,當訪問列中的值,而不是擔心寫入時會發生什麼。但是,如果由於某種原因,您的域規則不允許您採用該方法,則可以使用上面的處理程序。
爲什麼你需要?你不可以不用設定時間就使用'DateTime'嗎? – 2011-04-23 03:05:23
我不想給我的那個領域增加時間。 – Gainster 2011-04-23 03:08:41
DateTime.Today給你的日期與時間00:00:00 – 2011-04-23 03:15:33