時間(DateTime.Now.Add(-60))のクエリをASP.NETのグリッドビューで返します。 WHERE
句は、私に難しさの終わりを与えていない。SelectCommandでC#DateTimeをT-SQL時刻に変換します。
DateTime pastTime = DateTime.Now.Add(-60);
ds_DB.SelectCommand = "SELECT * FROM [vPurchaseTotals] WHERE [TimeOfTransaction] >= " + pastTime;
私の問題は正しく変換するためにpastTimeを取得しているため、新しいデータのみが返されます。 [TimeOfTransaction]
は、time(7)
のデータ型です。
C#のDateTime
をSQL ServerのTime
に解析するにはどうすればよいですか?ここで
パラメータ化クエリではなく文字列連結を使用してください。それだけであなたの問題を修正することはありませんが、SQLインジェクション(文字列型を使用する場合)だけでなく、SQL Serverのクエリキャッシュプランを向上させる可能性がパフォーマンスの向上を防ぐために防止します。 Microsoftの記事[How to:パラメータ化されたクエリの実行方法](https://msdn.microsoft.com/en-us/library/bb738521(v=vs.100).aspx) – Igor
を参照してください。代わりに、正しい型のパラメータを渡します。したがって、文字列に手を加える必要はありません。 'ds_DB.SelectCommand'とは何ですか?パラメータ化が可能ですか?そうでない場合は、どうしてですか? –
さて、私はパラメータ化について検討します。 ds_DB.SelectCommandは、データベースのバインドされたデータソースに対するコマンドです。 – Waffles