这次,我在将txt数据导入到datatable中然后再将table数据通过SqlbulkcopyInsert(dataset)形式赋值table到数据库中对应的table中的时候,遇到了这个问题,以下SqlbulkcopyInsert(dataset)方法的详细代码:
public static void SqlbulkcopyInsert(DataSet dataset)
{
string ie;
if (dataset.Tables.Count > 0)
{
foreach (DataTable itemTable in dataset.Tables)
{
SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectString, SqlBulkCopyOptions.UseInternalTransaction);
sqlbulkcopy.DestinationTableName = itemTable.TableName;//数据库中的表名
for (int i = 0; i < itemTable.Rows.Count; i++)
{
ie = itemTable.Rows[i][2].ToString();
}
sqlbulkcopy.WriteToServer(itemTable);
}
}
}
1,从bcp客户端收到一个对colid x无效的列长度 这个x代表你数据库中x+1列数据和插入数据间存在差异性(长短或者类型)
一开始我以为是数据导入,数据类型的问题(数据库中的数据可能被设置为not null),但是打开数据库一看,我设置的数据没有设置成not
null,就排除了这个可能性
2,我就开始设置数据库中的字段的长短varchar(200),然后居然成功了!原来是,复制数据长度超过了数据库中的字段长度,报的错误!