如何解决c#脚本中的可为空的DateTime
我已经编写了一些代码,但是在尝试从数据库中添加一个带有“null”的日期作为结果集时,我收到一个错误,即 null 不是日期/时间。
所以看起来,我有以下代码片段的错误......我的问题是:如何正确设置数据类型,“空”数据集不会产生错误?
如您所见,首先我会区分某些数据类型以创建正确的对象。但在这种情况下,对于日期,我想允许空对象。
你能帮我吗?
case kdType.Numeric20:
nKSI = ktSI.CreateKeyword(Int32.Parse(""+row[column]));
break;
case kdType.AlphaNumeric:
nKSI = ktSI.CreateKeyword(""+row[column]);
break;
case kdType.Date:
nKSI = ktSI.CreateKeyword(DateTime.ParseExact(""+row[column],"dd.MM.yyyy HH:mm:ss",null));
break;
case kdType.Currency:
nKSI = ktSI.CreateKeyword(Convert.ToDecimal(float.Parse(""+row[column],CultureInfo.CurrentCulture.NumberFormat)));
break;
case kdType.SpecificCurrency:
nKSI = ktSI.CreateKeyword(Convert.ToDecimal(float.Parse(""+row[column],CultureInfo.CurrentCulture.NumberFormat)));
break;
解决方法
在尝试使用 DateTime.ParseExact 之前,您必须检查 db null 值
类似的东西
object dbValue = row[column]
if (dbValue == DbNull.Value)
{
//handle NULL somehow
}
else
{
.... =DateTime.ParseExact(dbValue.ToString(),....);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。