C# visual studio计时器问题

C# visual studio计时器问题,c#,visual-studio-2010,C#,Visual Studio 2010,嗨,这些家伙有一个问题,计时器基本上我有一个秒变量设置为60,当它计数到0时,我希望我的SQL命令运行以更改数据库,然后为它生成一个消息框,上面写着“卡没收”或其他东西,然后单击ok应用程序停止 private void timer1_Tick(object sender, EventArgs e) { if (seconds < 1) { MessageBox.Show("Option timer Expired Card Confiscated plea

嗨,这些家伙有一个问题,计时器基本上我有一个秒变量设置为60,当它计数到0时,我希望我的SQL命令运行以更改数据库,然后为它生成一个消息框,上面写着“卡没收”或其他东西,然后单击ok应用程序停止

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);
    }
对于我所缺少的任何帮助,我们将不胜感激:)谢谢


编辑:哦,废话,对不起,忘记添加我的问题了,它转到0,然后基本上会不断地垃圾邮件发送消息

MessageBox。Show
会停止其余代码的执行,直到用户单击OK/Cancel/无论什么,但计时器将继续滴答作响,因为您正在检查
秒数<1
,而不是
==0
,生成更多的MessageBox和最终的SQL调用

而不是

  • 显示消息框
  • 停止计时器
  • 运行SQL
  • 我建议你

  • 停止计时器
  • 运行SQL
  • 显示消息框

  • 首先停止计时器可确保
    seconds<1
    分支只发生一次(尽管我仍然会选择
    ==0
    ,如果(seconds>0),可能会将
    else更改为
    else)
    ;运行SQL second可确保在显示消息时,用户的卡确实已被没收。

    MessageBox.Show
    停止执行其余代码,直到用户单击OK/Cancel/无论什么,但计时器将继续计时,因为您正在检查
    秒<1
    ,而不是e> ==0,生成更多的MessageBox和最终的SQL调用

    而不是

  • 显示消息框
  • 停止计时器
  • 运行SQL
  • 我建议你

  • 停止计时器
  • 运行SQL
  • 显示消息框

  • 首先停止计时器可确保
    seconds<1
    分支只发生一次(尽管我仍然会选择
    ==0
    ,如果(seconds>0),可能会将
    else更改为
    else)
    ;运行SQL second可确保在显示消息时,用户的卡确实已被没收。

    关于问题所在的任何更好的帮助都会更好:)什么是
    ?它是如何初始化的?计时器是如何启动的?实际问题是什么?以及什么是“可视计时器”?谢谢@Rawling看来我点的东西确实对代码产生了很大的影响任何更好的帮助都会更好:)什么是
    ?它是如何初始化的?计时器是如何启动的?实际问题是什么?什么是“视觉计时器”?谢谢@Rawling看来我订购的东西确实对代码产生了很大的影响
    
    UPDATE       dbo.ATMCards
    SET                confiscated = @confiscated
    WHERE        (cardNumber = @cardNum)