日期:2014-05-17  浏览次数:20871 次

Insert添加重复数据报错
用Insert批量添加时报错,因为表中设置了主键。
但是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;
    }
}