插入数据库遇到“从bcp客户端收到一个对colid x无效的列长度 ”


这次,我在将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),然后居然成功了!原来是,复制数据长度超过了数据库中的字段长度,报的错误!

猜你喜欢

转载自blog.csdn.net/zyzbulus/article/details/77479144