1

私はテレリックグリッドビューに取り組んでおり、特定の条件で警告を表示することになっていて、そのうちの1つは次のとおりです。

期日が今日の日付よりも大きく、警告日数が 3 の場合、期日が今日よりも大きいすべてのレコードが表示されますが、それらが警告期間内にある場合にのみ、表示されるはずです。

したがって、今日の日付が 22-12-2012 で、期日が 25-12-2012 で、警告日数が 3 の場合、そのレコードを選択する必要があります

私がこれまでに試したこと:

 DateTime dtTodayDate = DateTime.Today;
   string strTodayDate = dtTodayDate.ToString("yyyy/MM/dd 00:00:00");
    strFilter += @"OR ( [DueDate] >= #" + strTodayDate + @"# AND [Warn_Days] > 0 AND [DueDate] - [Warn_Days] =#" + strTodayDate + @"# )";

System.DateTime および System.Int32 に対して '-' 操作を実行できません。

4

1 に答える 1

2

間違った区切り記号を使用しています。Access で#使用されています。SQL Server の場合、日付を通常の文字列として渡すだけです。

strFilter += @"OR ( [DueDate] >= '" + strTodayDate + @"' AND [Warn_Days] > 0 AND [DueDate] - [Warn_Days] ='" + strTodayDate + @"' )";

ただし、代わりにパラメーター化されたクエリを使用する必要があります。ある時点であいまいな文字列を渡し、取得していると思われる日付値を取得できない可能性が高くなります。

于 2012-11-08T15:34:33.347 に答える