0

我已经编写了一些代码,但是在尝试从数据库中添加一个带有“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;

4

1 回答 1

1

在尝试使用 DateTime.ParseExact 之前,您必须检查 db null 值

像这样的东西

object dbValue = row[column]
if (dbValue == DbNull.Value)
{
//handle NULL somehow
}
else
{
.... =DateTime.ParseExact(dbValue.ToString(), ....);
}
于 2021-03-30T12:46:56.370 回答