用SqlBulkCopy批量安插数据时提示来自数据源的 String 类型的给定值不能转换为指定目标列的类型 int...
? ? ? ? ? ? ? ? dr["description"]?=?ds.Tables[0].Rows[i]["組織描述"].ToString();
????????????????dr["groupuser"]?=?ds.Tables[0].Rows[i]["組織成員"].ToString();
????????????????dr["userid"]?=?AMSession.LoginUser.id;
????????????????dr["remark"]?=?ds.Tables[0].Rows[i]["備注信息"].ToString();
????????????????dt.Rows.Add(dr);
????????????}
????????????Stopwatch?stopwatch?=?new?Stopwatch();
????????????stopwatch.Start();
????????????SqlBulkCopy?sqlBulkCopy?=?new?SqlBulkCopy(AMCommon.DBUtility.DbHelperSQL.connectionString);
????????????sqlBulkCopy.DestinationTableName?=?"groupinfo";
????????????sqlBulkCopy.BatchSize?=?dt.Rows.Count;
????????????SqlConnection?sqlConnection?=?new?SqlConnection(AMCommon.DBUtility.DbHelperSQL.connectionString);
????????????sqlConnection.Open();
????????????if?(dt?!=?null?&&?dt.Rows.Count?!=?0)
????????????{
????????????????sqlBulkCopy.WriteToServer(dt);
????????????}
????????????sqlBulkCopy.Close();
????????????sqlConnection.Close();
????????????stopwatch.Stop();
------解決方案--------------------
SqlBulkCopy不是根據表的ColumnName來匹配的,而是根據ColumnIndex匹配,
也就是說你的表?字段必須跟數據庫的表字段完全一致(Index的排序要跟數據表的一樣)。
就算你該字段不打算給他插入值,也要建個DataColumn。包括自增ID.不需要給他值就好了
轉載于:https://www.cnblogs.com/youngmin/p/6256419.html
總結
以上是生活随笔為你收集整理的用SqlBulkCopy批量安插数据时提示来自数据源的 String 类型的给定值不能转换为指定目标列的类型 int...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows2012中安装域控(DC)
- 下一篇: # 单例模式