Insert添加重复数据报错 用Insert批量添加时报错,因为表中设置了主键。但是Insert中有重复的 所以报错,但是一报错后面的就添加不了了。怎么让添加时如果主键已经存在了 就不添加,也不报错? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把你要插入的数据写到临时表然后leftjoin现在的表 看看主键字段是不是null 如果是null说明不存在 然后再insert就行了 两种方法可解决,方法一比较好些:1 改造 INSERT 语句,先查询是否存在,如果不存在才插入: if not exists ( select ... ) insert ...2 截取主键冲突的异常,忽略它:for (int i = 0; i < 1000; i++){ try { //插入一条数据 } catch (System.Data.SqlClient.SqlException ex) { System.Data.SqlClient.SqlException sqlex = ex as System.Data.SqlClient.SqlException; if (sqlex.Number != 2627) throw; }} isnert into table(id) values (select max(id)+ 1 from table) 避免插入重复主键 想把所有窗口不改变大小移到左上角,宽却变窄了?内附代码。 dataGridView1与DateTimePicker资料同步的问题 水晶报表如何使用存储过程 水晶报表翻页打印 ASP.NET2.0 中TreeView控件:如何做到点击节点而不刷新页面? (加急)在数据库中怎么读image类型字段,里面是文字。 C#在C/S模式下的应用多不多? textBox控件得到焦点得时候,使光标不显示? C#windowsform关于EXCEL的安装程序 C#向已有excel表格模版添加数据问题!急急急急急急 C# 升级包(本地覆盖安装) C# dataGridview 导出exlex格式问题
然后leftjoin现在的表 看看主键字段是不是null
如果是null说明不存在 然后再insert就行了
1 改造 INSERT 语句,先查询是否存在,如果不存在才插入:
if not exists ( select ... ) insert ...
2 截取主键冲突的异常,忽略它:for (int i = 0; i < 1000; i++)
{
try
{
//插入一条数据
}
catch (System.Data.SqlClient.SqlException ex)
{
System.Data.SqlClient.SqlException sqlex = ex as System.Data.SqlClient.SqlException;
if (sqlex.Number != 2627)
throw;
}
}
避免插入重复主键