[英]visual studio timer problems
嗨,大家好,我的计时器基本上是个问题,我将秒变量设置为60,当它倒数为0时,我希望运行我的SQL命令来更改数据库,然后生成一个消息框,说“没收卡片”等等,一旦他们单击“确定”,应用程序将停止
private void timer1_Tick(object sender, EventArgs e)
{
if (seconds < 1)
{
MessageBox.Show("Option timer Expired Card Confiscated please contact your local branch");
timer1.Enabled = false;
sqlCommandTimer.Parameters["@cardNum"].Value = Class1.cardNumber;
sqlCommandTimer.Parameters["@confiscated"].Value = true;
try
{
sqlCommandTimer.Connection.Open();
sqlCommandTimer.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
Application.Exit();
sqlCommandTimer.Connection.Close();
}
}
else
{
seconds--;
listBox2.Items.Add(seconds);
}
这是我的SQL命令
UPDATE dbo.ATMCards
SET confiscated = @confiscated
WHERE (cardNumber = @cardNum)
任何关于即时消息缺失的帮助将不胜感激:)谢谢
编辑:哦废话抱歉忘记添加我的问题,它变成0,然后基本上不断地垃圾邮件
MessageBox.Show
停止执行其余代码,直到用户单击“确定” /“取消” /任何按钮,但计时器将继续计时,并且由于您检查的是seconds < 1
而不是== 0
,因此会生成更多的消息框,并最终生成SQL电话。
而不是
我建议你
首先停止计时器,确保seconds < 1
分支仅发生一次(尽管我仍然会检查== 0
,并且有可能将else
更改为else if (seconds > 0)
;第二次运行SQL可以确保通过显示该消息时,确实没收了用户的卡。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.