首页 > 代码库 > 使用sqlbulkcopy报错:1 DataSet 不支持 System.Nullable<>,2.来自数据源的 String 类型的给定值不能转换为指定目标列的类型 nvarchar。

使用sqlbulkcopy报错:1 DataSet 不支持 System.Nullable<>,2.来自数据源的 String 类型的给定值不能转换为指定目标列的类型 nvarchar。

第一个问题,

解决方法:dt.addcolunms("名字","类型"),类型不能为typeof( int?),typeof(datetime?)等可空值类型.字符串可以.所以可空值类型改成不可空即可.

第二问题,

解决方法: bulkCopy.WriteToServer(dt);先检查dt的列类型是不是不对?,如果没问题,再检查这个dt的列的顺序和数据库列的顺序保持一致.

 

本人遇到这两个问题就这样解决了.有朋友可能会说,我datatable的列名不就是字段名吗,为什么要顺序一致?实际上他是按顺序来的,不是根据列名来.

如果有错误,欢迎指出.

 

使用sqlbulkcopy报错:1 DataSet 不支持 System.Nullable<>,2.来自数据源的 String 类型的给定值不能转换为指定目标列的类型 nvarchar。