1

データベース内のレコードをチェックするために、C# ASP.NET ページに AJAX タイマーを作成しました。レコードが見つからない場合、DB ポーリングを続行したいと思います。現在、レコードが見つからないときに爆発しています。レコードが見つかったときにうまく機能し、正しいステータスを探すだけです。

2 つの質問があります。

1.) レコードが見つからない場合にポーリングを続行するにはどうすればよいですか。2.) タイマーが 5 分後にポーリングを停止し、メッセージを表示するにはどうすればよいですか?

これが私のコードの一部です:

protected void Timer1_Tick(object sender, EventArgs e)
    {
        System.Threading.Thread.Sleep(8000);
        string fileName = ViewState["FileName"].ToString();
        DBACCT account = new AccountMDB();
        DataTable dt = account.getSTS(fileName);
        String status = dt.Rows[0]["sts"].ToString();
        Label2.Text = status;
       if (dt.Rows.Count == 0)
        {
        // restart timer?
        }
        if (status == "C")
        {            
            Timer1.Enabled = false;
            Label2.Text = "File processed correctly";
        }
        if (status == "E")
        {
            Timer1.Enabled = false;
            Label2.Text = "File processed with Errors";

        }
    }
4

1 に答える 1

1

まず、行数を確認するまでステータスを取得しないでください(これがおそらく爆発している理由です)。

第二に、なぜあなたはタイマーメソッドの中で眠っているのですか?代わりに、タイマーを8秒ごとにオフにしないのはなぜですか?'interval'を8000に設定すると、うまくいくはずです。

今、あなたの質問に答えるために。

1.)AJAXタイマーは自動リピートするように設定されていませんか?そうである場合、前に指定した変更を行うと、8秒ごとにこのコードが自動的に実行されるはずです。そうでない場合は、それらを繰り返す方法についていくつかの調査を行う必要があります。

2.)最も簡単な方法は、5分後にオフになる別のタイマーを作成することです。これにより、両方のタイマーが無効になり、メッセージが出力されます。

于 2012-08-17T18:22:27.177 に答える