我有一个文本文件,我将其读入数据表中,然后执行批量插入到 SQL Server 表中。当所有导入的值都被视为字符串(日期、字符串、整数等都被导入到字符串字段中)时,它非常快且运行良好。
现在,我已经搞清楚了这个概念,所以我要回去在数据库和我的代码中分配真正的数据类型。数据库已经为字段分配了正确的类型,现在我正在处理代码。
我的问题出在日期上。正如我所提到的,一切都是字符串,并转换为正确的类型。在下面的代码中,我想测试表示日期的字符串值是否为空或空格。如果不为空,则使用现有值。否则,将其设置为 null。
row[i] = !string.IsNullOrWhiteSpace(data[i]) ? data[i] : DBNull.Value;
我试图使用 null
,但是会收到错误提示要我使用 DBNull
。当我使用 DBNull
时,会有一条消息告诉我 string 和 System.DBNull
之间没有隐式转换。
数据表中的列已经指定了数据类型(在这种情况下,DataType = Type.GetType("System.DateTime")
),并且我为该列设置了 AllowDBNull = true
。
我应该如何处理这个问题?
谢谢!
object
类型即可。 - SLaks