【发布时间】:2020-10-31 01:39:28
【问题描述】:
我正在使用SqlBulkCopy.WriteToServer-方法将批量数据插入数据库表。当我将数据表作为方法WriteToServer 的参数传递时,一些数值(numeric(17,6)) 在插入数据库表时被.000001 减去。但并非所有值都在发生变化,它是随机发生的,无法识别模式。例如- 10068.121 正在更改为 10068.120999
现在,当我将数据读取器作为方法 WriteToServer 的参数传递时,它工作正常,数值保持不变。
知道为什么它发生在数据表而不是数据读取器上吗? 我的应用程序是 C# 控制台应用程序。
这是我的代码……如果我将数据表 (_dt) 传递给 _sqlBulkCopy.WriteToServer 方法,那么我就有问题了。但是当我将数据表 (_dt) 转换为 DataTableReader (_Reader) 时,它工作正常。
DataTable _dt = new DataTable();
_odbCDA.Fill(_dt);
DataTableReader _Reader = new DataTableReader(_dt);
using (SqlBulkCopy _sqlBulkCopy = new SqlBulkCopy(_sqlConnectionString))
{
_sqlBulkCopy.BulkCopyTimeout = 3600;
_sqlBulkCopy.DestinationTableName = _tableName;
_sqlBulkCopy.WriteToServer(_Reader); //This works
//_sqlBulkCopy.WriteToServer(dt); //This is having the issue
_sqlBulkCopy.Close();
}
【问题讨论】:
标签: c# console sqlbulkcopy