C# SqlBulkCopy dbnull.value错误

C# SqlBulkCopy dbnull.value错误,c#,excel,guid,sqlbulkcopy,C#,Excel,Guid,Sqlbulkcopy,我正在尝试使用bulkcopy将excel文件中的行插入sql server 2000。表中有一个“rowguid”字段,其默认值设置为(newid()),不能为空值。此外,RowGUID设置为“是” 在我的代码中,我删除了rowguid的列映射。这是我的密码 if (dr.HasRows) { using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString)) {

我正在尝试使用bulkcopy将excel文件中的行插入sql server 2000。表中有一个“rowguid”字段,其默认值设置为(newid()),不能为空值。此外,RowGUID设置为“是”

在我的代码中,我删除了rowguid的列映射。这是我的密码

if (dr.HasRows)
{
    using (SqlBulkCopy bulkCopy =
        new SqlBulkCopy(sqlConnectionString))
        {
           bulkCopy.DestinationTableName = "configtest";
           SqlBulkCopyColumnMapping value = new SqlBulkCopyColumnMapping("rowguid", "rowguid");
           bulkCopy.ColumnMappings.Remove(value);
           bulkCopy.WriteToServer(dr);
         }


 }
我获取列“rowguid”不允许dbnull.value

该字段的定义是:rowguid,uniqueidentifier,允许空值取消勾选。

而不是

bulkCopy.ColumnMappings.Remove(value);
试一试


必须删除引用的映射。因此,如果您已经有了ColumnMapping,您必须这样做:

var mapping = bulkCopy.ColumnMappings.Cast<SqlBulkCopyColumnMapping>()
            .Single(x => x.DestinationColumn == "rowguid"));

bulkCopy.ColumnMappings.Remove(mapping);
var-mapping=bulkCopy.ColumnMappings.Cast()
.Single(x=>x.DestinationColumn==“rowguid”);
bulkCopy.ColumnMappings.Remove(映射);

请向我们显示错误消息。“表格的定义也很好。”鲁伊贾林巴补充到问题中。在回答中看不出有什么不同。
var mapping = bulkCopy.ColumnMappings.Cast<SqlBulkCopyColumnMapping>()
            .Single(x => x.DestinationColumn == "rowguid"));

bulkCopy.ColumnMappings.Remove(mapping);