0

私は datagridview を持つアプリケーションを持っています。私はデータベースから直接情報をバインドしています。私はdeadlineDateTime 型の名前の列を持っています。この列は締め切り日を保持しています。

私のC#アプリケーションでは、datagridviewのすべての行を繰り返し処理し、締め切り日を含む特定の列を取得してから、次のように更新します:

public void reformatDates() {
        string endDate = null;
        foreach (DataGridViewRow rw in dataGridView1.Rows)
        {
            endDate = rw.Cells[5].Value.ToString();
            rw.Cells[5].Value = getCountDown(endDate);
        }
    }

関数getCountDown(DateTime endDate)が日、時間、分のカウントダウンを文字列として取得する場所。

すべてが期待どおりに機能していますが、すべての行を反復処理しているため.. 5000 行と言う多数の行がある場合はどうでしょうか。それらすべてを繰り返し処理し、各セルを更新する必要がありますか?

データベースから情報をバインドするために使用している関数は Bind(string sqlquery) で、現在次のように呼び出しています。

      Bind("SELECT statut,title,deadline FROM taches WHERE 1");

データベースから直接カウントダウンを取得する方法はありますか(日、時間、分)、次

の疑似コードのようなものを意味します:

      Bind("SELECT statut,title,(DateNow-deadline) FROM taches WHERE 1");

どんな助けでも大歓迎です。ありがとうございました

4

1 に答える 1

0

私が正しく理解している場合、これはあなたが望むものです:

Bind("SELECT statut,title,TimeDiff(sysdate(),deadline) FROM taches WHERE 1");

完全なリファレンス: https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_sysdate

于 2013-02-19T11:23:26.070 に答える