我正在使用SqlBulkCopy将大量数据上传到SQL表。除了一件事(总是如此)之外,它的效果非常好。
所以在我的c#app中,我有一个功能。它接收一个类型为object的变量myObj(来自Matlab)。该对象实际上是一个数组。
我创建了一个DataTable,我指定了列类型&从myObj中读取数据。表中的一列(我们称之为薪水)是double类型。
问题
如果其中一行具有薪水的NaN值,则上传将不起作用,它将返回以下消息。
链接服务器'(null)'的OLE DB提供程序'STREAM'返回列
的无效数据
我在数据库中需要的是要上传的行但是Salary,列的值为null。有没有办法做到这一点?
我提出的唯一粗略方法是测试我的c#app中值为null(或NaN)的时间,并为其分配值-999,然后在上传后将任何值从-999更新为null。然而,这似乎是一个糟糕的解决方法。