跳过所有upcomimg行代码,但不要关闭程序

时间:2018-07-02 11:02:59

标签: c# .net

我有一个C#程序,如果到达else块中的代码,则它应该显示一条消息,并且必须停止进一步执行该代码。

我在下面有此代码,我尝试使用return,但是它不起作用。执行else之后,程序将继续执行下一个功能。

if (((batch_sold - dqty_y) >= 0) && ((batch_left + dqty_y) <= batch_qty) && ((batch_left + dqty_y) >0))
{
    con.Open();
    SqlCommand command = new SqlCommand("update batch set sold_qty=sold_qty-@soldqty2, left_qty=left_qty+@soldqty2 where id=@id2", con);
    command.Parameters.AddWithValue("@soldqty2", Convert.ToInt32(dqty_y));
    command.Parameters.AddWithValue("@id2", Convert.ToInt32(k_batch));
    rexe = command.ExecuteNonQuery();
}
else
{
    check_qty = -1;
}

2 个答案:

答案 0 :(得分:1)

放入

Console.ReadKey();

之后

check_qty = -1;

这样,程序将一直等到用户按下某个键,然后再继续执行。

答案 1 :(得分:1)

您好,您可以将try catch阻止在更高的级别

private void Update()
{

           if (((batch_sold + dqty_y) <= batch_qty) && ((batch_left - dqty_y) >= 0))
            {
                SqlCommand command = new SqlCommand("update batch set sold_qty=sold_qty+@soldqty2, left_qty=left_qty-@soldqty2 where id=@id2", con);
                command.Parameters.AddWithValue("@soldqty2", Convert.ToInt32(dqty_y));
                command.Parameters.AddWithValue("@id2", Convert.ToInt32(k_batch));
                rexe = command.ExecuteNonQuery();
                            }
               else throw new Exception("Check Ordered Quantity");
}

在您的main中:

try{
    Update();
    Foo();
    Bar();
    .
    .
    .
}
catch(exception e)
{
     MessageBox.Show(e.Message);
     return;
}