首页 新闻 会员 周边 捐助

sqlbulkcopy 使用DataTable作为数据源的数据类型问题。?

0
悬赏园豆:10 [已解决问题] 解决于 2013-01-31 17:32

小弟在做批量插入sqlserver,于是便使用了sqlbulkcopy类,但是发现在插入的时候,经常报类型无法转换的问题(我确定传进去的值都对 的),然后为了证实这一点,我甚至将数据库的记录select出来,然后修改uniqueidentifier类型的主键值为 Guid.NewGuid(); 然后再使用sqlbulkcopy往数据库插,竟然还会报《《来自数据源的 Int32 类型的给定值不能转换为指定目标列的类型 uniqueidentifier。》》的异常,然后我还将table的该列设置类型 modelTable.Columns["MyCategoryId"].DataType = Type.GetType("System.Guid"); 依然无效。

dotnetgeek的主页 dotnetgeek | 菜鸟二级 | 园豆:482
提问于:2012-07-28 11:03
< >
分享
最佳答案
0

建立一个table 创建一个列 类型是guid 看看 行不行

收获园豆:10
Tom.汤 | 老鸟四级 |园豆:3058 | 2012-07-28 12:46

不行,我的问题已经说得很清楚了,已经试过你所说的这种了。

dotnetgeek | 园豆:482 (菜鸟二级) | 2012-07-30 16:23
其他回答(2)
-1

DataTable dt = new DataTable();
dt.Columns.Add("Id", typeof(System.Data.SqlTypes.SqlGuid));

DataRow dr = dt.NewRow();
dr["Id"] = (SqlGuid)System.Guid.NewGuid();

问题解决.

南阳·源 | 园豆:202 (菜鸟二级) | 2013-04-20 00:04
0

错误报的是“来自数据源的 Int32 类型的给定值不能转换为指定目标列的类型 uniqueidentifier。” modelTable中的MyCategoryId字段是Int32类型的吗?Int32是没法自动转为Guid的。

陆仁甲乙丙丁 | 园豆:203 (菜鸟二级) | 2015-10-14 16:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册