【发布时间】:2014-07-29 20:36:36
【问题描述】:
这是我的代码
public static void InsertToDatabase(DataTable dataTable) {
using (SqlBulkCopy sbc = new SqlBulkCopy(GetConnectionString())){
sbc.DestinationTableName = tableName;
sbc.WriteToServer(dataTable);
}
}
这是个例外:
来自数据源的String类型的给定值不能转换为指定目标列的nchar类型。
有什么方法可以知道异常属于哪一列?
【问题讨论】:
-
你是如何创建数据表的?将表列定义为目标表。
-
@Rahul 说来话长,我正在使用 CsvHelper 库从大约 500 个 csv 文件中读取数据并将该数据加载到数据表中。无论如何,这很好,我认为数据表没有任何错误
-
@Rahul 是的,表列与数据表列完全相同。 100% 确定这一点。我知道这一点
-
好的。在这种情况下,必须存在大小不匹配。我的意思是异常中的特定列的大小无法容纳数据表中数据的大小。你能检查并确认吗?
-
@Rahul 我不知道我是否理解正确,但是数据库表有 39 列,而我的 csv 文件有 38 列。但是剩下的 1 列是可以为空的。你是这个意思吗?
标签: c# sql-server sql-server-2008 datatable sqlbulkcopy