【发布时间】:2015-10-09 14:50:06
【问题描述】:
我用 Infragistics 制作了一个 UltraGrid,其中有一列 Datetime 类型的列,格式为 HH:mm。
通常,该列会填充一个值,例如:“15:13”。我可以编辑它并设置我想要的然后保存。但是如果我删除它看起来像这样的字段:“_ : _”然后我保存我的表,我会得到一个异常“指定的转换无效”。
这是因为我试图保存一个未设置的值。我想知道如何处理这个异常。
我试图将该字段与“null”进行比较,但它不起作用。
var newDuration = (DateTime)row.GetCellValue(3);
if (newDuration == null)
{
MessageBox.Show("Please set all the fields.");
}
该列的dataType为System.DateTime,我将默认值设置为DB(DBNull),AllowDBNull为Default。
有两种方法可以解决这个问题:
- 向用户显示一条消息,要求他设置一个值
- 如果该字段为空,则设置一个默认值,例如 00:00
如果您需要更多信息,请询问我。谢谢!
【问题讨论】:
-
使用 Datetime.TryParse
-
row.GetCellValue(3).GetType()显示什么? -
如果它是 Nullable 字段而不是尝试使用 Nullable DateTime 类型。 var newDuration = (DateTime?)row.GetCellValue(3);首先检查 null。
-
@Jon Skeet 它显示“{03/01/2015 00:00:00}
-
我非常非常怀疑
row.GetCellValue(3).GetType()表明了这一点。
标签: c# .net infragistics