我正在使用LINQ,有一些属性是DateTime?类型。
如果我现在想要添加来自文本框的值,似乎无法使其工作。
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ScoringLastUpgrade", DbType="Date")]
public System.Nullable<System.DateTime> ScoringLastUpgrade
我使用的文本框已经通过JavaScript确保了格式为'2011-06-17'。
但是,现在当我尝试执行以下操作时:
myObject.ScoringLastUpgrade = Convert.ToDateTime(txtScoringUpgradeDate.Text).ToShortDateString();
我收到这个错误信息:“无法将字符串类型转换为DateTime类型?”
如何解决这个问题?
DateTime
是等效的 CLR 数据类型。无论数据库使用date
、time
还是datetime
,Linq to Sql 引擎都会为您映射适当的值。此外,除了如何获取有效的DateTime
值以填充DateTime?
属性之外,您并没有做任何不同的事情。 - Matthew Abbottpublic static DateTime toDateTime(this TextBox aTextBox) { DateTime date; if (aTextBox.Text != string.Empty) { if(DateTime.TryParse(aTextBox.Text, out date)) { return date; } } return System.DateTime.MinValue; }
这应该是正确的做法,对吧? - Andreas