本人刚刚开始学习.net,水平非常菜,现在遇到个问题
这是一个添加记录的按钮
private void add_Click(object sender, System.EventArgs e)
{
    string inString1 = "INSERT INTO ClubInfo (CID,JoinFrom,Cpost,PhoNum,QQ,EMAIL,Birth,表演部) Values ( '" + textBox2.Text.ToString() + "','" + textBox3.Text.ToString() + "','" + textBox15.Text.ToString() + "' , '" + textBox10.Text.ToString() + "', '" + textBox11.Text.ToString() + "', '" + textBox12.Text.ToString() + "','" + textBox9.Text.ToString() + "', '" + textBox16.Text.ToString() + "')" ;
    string inString2 = "INSERT INTO StuInfo (Sname,Ssex,Major,RoomNum,StuID) Values ( '" + textBox6.Text.ToString() + "', '" + textBox14.Text.ToString() + "', '" + textBox13.Text.ToString() + "', '" + textBox8.Text.ToString() + "', '" + textBox7.Text.ToString() + "')";
    string inString3 = "INSERT INTO CardInfo (CID,TimesLeft , DeadLine) Values (  '" + textBox2.Text.ToString() + ", "+ textBox4.Text + ", " + textBox5.Text.ToString() + "')";
    string inString4 = "INSERT INTO LoginInfo (CID,StuID) VALUES('" + textBox2.Text.ToString() + "' , '" + textBox7.Text.ToString() + "')";
    member dinsert = new member();
    if (this.textBox2.Text.Length<1|this.textBox7.Text.Length<1)
     {
    MessageBox.Show("会员号、学号必须填写!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
      }
    if (this.textBox14.Text!="女"&this.textBox14.Text!="男")
{
MessageBox.Show("性别必须为男女!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
    else
 {
dinsert.updateDB(inString4);
dinsert.updateDB(inString1);
dinsert.updateDB(inString2);
dinsert.updateDB(inString3);
 }

showGrid(sqlstring);
    }
怎样能让执行更新数据库语句的时候,如果前一句执行错误就不执行下面的语句了?
还请各位高手赐教啊!!!

解决方案 »

  1.   

    你的updateDB方法,你做成有返回值的,public bool updateDB
    返回false,下面就不执行
      

  2.   

    学习!!TRY,CATCH ,FINALLY 不知道能否解决问题??
      

  3.   

    加数据库事务控制在你的dinsert里面
      

  4.   

    有错误自己就异常,就跳出去了吧
    怎么还要写什么不明白
    难道真是1楼说的那样要变成bool的函数么
    如果是哪个意思也是个好办法
    if(dinsert.updateDB(inString4))
    {执行}
    else
    {return;}
      

  5.   


    //如果你想实现回滚的话,请用事务
      try
            { 
    dinsert.updateDB(inString4); 
    dinsert.updateDB(inString1); 
    dinsert.updateDB(inString2); 
    dinsert.updateDB(inString3);
    }
            catch (Exception ex)
            {
               throw ex;
            }
            finally
            { }
      

  6.   

    你可以对多个更新添加在一个事务中,下面是我以前写的ado.net多表更新的代码。
    http://blog.csdn.net/zhzuo/archive/2004/08/06/67016.aspx
    http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx
      

  7.   

    using(TransactionScope ts1=new TransactionScope())
    {
          ts1.complete();
    }