0

データベースに日付という列が1つあり、データベースの日付列にはこの2013-02-22が含まれていますが、フロントエンドでは2つのajaxdateピッカーを使用してレコードを検索しています。このようにクエリを書いています。正しいかどうか。

SELECT * from table where Date between '" + txtfromdate.Text +"' and '"+txttodate +"'";
4

1 に答える 1

2

クエリは正しいですが(適切にフォーマットされた日付値を渡すと仮定)、1回限りのプログラミング演習以外には受け入れられません。

SQLインジェクションを回避するには、パラメータ化されたSQLクエリを使用してください。開始点はSqlCommand.Parametersです。

これは、パラメータを使用するために必要な近似コードです。

SqlCommand command = new SqlCommand(
  "SELECT * FROM table WHERE Date BETWEEN @date1 AND @date2", connection);
command.Parameters.AddWithValue("@date1", DateTime.Parse(txtfromdate.Text));
command.Parameters.AddWithValue("@date1", DateTime.Parse(txttodate));
SqlDataReader reader = command.ExecuteReader();
于 2013-03-05T02:45:27.460 に答える