SqlBulkCopy字符串NULL CSV

时间:2018-12-31 01:49:31

标签: c# sql-server

我正在尝试将CS​​V文件批量插入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);

1 个答案:

答案 0 :(得分:0)

关于您的问题是很模糊的,但是我想我知道您希望将数据存储为数据类型NULL而不是数据库中的字符串“ NULL”。

根据我对SQLBulkCopy到数据表的了解,您无法操纵数据将NULL存储在数据库表中。为了解决这个问题,我使用了两种解决方法:

  1. 在上传之前删除CSV内部的“ NULL”。如果CSV来自您的用户,建议他们不要对假定为空白/空的单元格使用“ NULL”。只需将单元格留空。这是最直接的方法,因为当单元格为空白时,数据表将以某种方式将NULL存储到数据库表中。

  2. 相当缓慢的方式,将数据表中的所有“ NULL”值替换为空白(“”)并存储到数据库表中。当SQLBulkCopy插入所有数据时,运行一条update语句将所有空白列更新为NULL