我有一个文本文件,我读入数据表,然后执行批量插入到SQL Server表中。它非常快速,当所有导入的值都视为字符串(日期,字符串,整数等全部导入到字符串字段中)时,它非常有用。设置DataRow项目为空
现在我已经理解了这个概念,现在我回头在数据库和代码中分配真实的数据类型。数据库具有分配给这些字段的正确类型。我正在处理代码。
我遇到日期问题。正如我所提到的,一切都是一个字符串并被转换为正确的类型。在下面的代码中,我想测试表示日期的字符串值是否为空或空白。如果它不为空,则使用现有值。否则,将其设置为空。
row[i] = !string.IsNullOrWhiteSpace(data[i]) ? data[i] : DBNull.Value;
我尝试使用null
但得到一个错误,告诉我使用DBNull
来代替。当我使用DBNull
时,我收到一条消息,告诉我字符串和System.DBNull
之间没有隐式转换。
DataTable中列有数据类型指定(在这种情况下,DataType = Type.GetType("System.DateTime")
),我设置AllowDBNull = true
此列
如何处理呢?
谢谢!
你只需要转换其中的一个'object'。 – SLaks 2011-02-25 18:11:47