我有一个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;
}
答案 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;
}