请各位大侠赐教我写一个类似这样的程序点击button执行x()程序,x()程序是从txt文档中读取数据并写入Access数据库,但由于数据可能是重复的,将不能写入数据库
我用

try
{
}
catch (Exception ex)
{
 listBox1.Items.Add(ex);//异常,就跳出了

来执行,如果遇到重复数据程序就在listBox1中报异常,但程序就不会继续执行下去了,我想让它继续执行,对于出错的数据先不管它,等将来再来处理,而要继续写如下一条,这该则样实现呀?

解决方案 »

  1.   

    for(int i=0;i<100;i++)
    {
    try 

    //插入数据库代码

    catch (Exception ex) 

    listBox1.Items.Add(ex);

    }
      

  2.   

    1楼,这样好像不行吧,因为我在try中执行的就是把多个txt文档中的数据写入数据库,如果前边加个for循环,那样就重复输入了还是会异常呀,只不过是报100次异常
      

  3.   

    可以从两个方面解决:
    一、先把txt读入内存队列,然后循环读取队列写入数据库,catch到异常则continue,读取下一条并入库;
    二、每次插入数据库之前,先查找即将要插入的这条数据是否已经存在于数据库,若已经存在,则不再插入。我写数据库程序都是这么干的,尤其是第二条,写数据库操作的程序一定要注意,争取主动,降异常出现的概率。
      

  4.   

    一楼的catch里加个continu就对了
      

  5.   

    不好意思,写错了,是continue
      

  6.   

    你理解错1楼的意思了.他的意思是你的TRY CATCH要放在每条插入语句那里.而不是所有插入语句,.
    好好整理一下思路吧 . 你的问题是可以解决的
      

  7.   

    对读取的数据做一个编号,,出现异常(数据重复)就编号+1,读下一条数据,往数据库写,这些在
    catch (Exception ex) 

    listBox1.Items.Add(ex);
    } 中处理。。
      

  8.   

    catch 内再 try...catch 
      

  9.   

    谢谢大家,问题已经解决,汉唐盛世是自己同事,当面授课了
    就是把
    try  和  catch
    放到输入数据库的位置
    遇到异常就continue,然后读取下一行再次循环输入,非常感谢大家
      

  10.   

    在catch 里是咋continue的 。continue 不是有循环的时候才能用的吗