我正在尝试将CSV文件批量插入SQL Server数据库中。
该过程是 SqlBulkCopy SQL Server的.CSV文件DataTable。
在文件中,我有几个NULL
,这些代码以文本形式返回,而不应该是文本:
var linea = line.Split(delimiter);
row = dt.NewRow();
for (j = 0; j < linea.Length; j++)
{
if (linea[j].ToString().ToLower() == "null")
{
row[j] = DBNull.Value;
}
}
dt.Rows.Add(row);
答案 0 :(得分:0)
关于您的问题是很模糊的,但是我想我知道您希望将数据存储为数据类型NULL
而不是数据库中的字符串“ NULL”。
根据我对SQLBulkCopy到数据表的了解,您无法操纵数据将NULL
存储在数据库表中。为了解决这个问题,我使用了两种解决方法:
在上传之前删除CSV内部的“ NULL”。如果CSV来自您的用户,建议他们不要对假定为空白/空的单元格使用“ NULL”。只需将单元格留空。这是最直接的方法,因为当单元格为空白时,数据表将以某种方式将NULL
存储到数据库表中。
相当缓慢的方式,将数据表中的所有“ NULL”值替换为空白(“”)并存储到数据库表中。当SQLBulkCopy插入所有数据时,运行一条update语句将所有空白列更新为NULL
。