1

mysql データベースを照会する vb.net プログラムがあります。次のコードを使用して、 から までの日付のレコードを検索して取得できます。

sqlQRY12 = "SELECT * from mating WHERE date BETWEEN '" & export_daily_date_DateTimePicker1.Text & "' AND '" & export_daily_date_DateTimePicker2.Text & "' AND chkbox = '0' ORDER BY lot_id ASC"

私の日付の形式は次のとおりです。

        export_daily_date_DateTimePicker1.Format = DateTimePickerFormat.Custom
    export_daily_date_DateTimePicker1.CustomFormat = "MM/dd/yy"

    export_daily_date_DateTimePicker2.Format = DateTimePickerFormat.Custom
    export_daily_date_DateTimePicker2.CustomFormat = "MM/dd/yy"

しかし、2013 年 12 月 20 日から 2014 年 2 月 20 日までの 2 年間を検索しようとすると、レコードが存在することがわかっているのにレコードが返されませんか? どんな助けでも大歓迎です

4

2 に答える 2

1

値を SQL コマンドに連結しないでください。可能な限り、パラメータを使用する必要があります。Dateパラメーターを使用すると、値を文字列表現ではなく、実際の型 ( ) として指定できます。ADO プロバイダーは、値の変換を正しく処理します。

cmd.CommandText = "SELECT * from mating WHERE date BETWEEN @date1 AND @date2 AND chkbox = '0' ORDER BY lot_id ASC"
cmd.Parameters.AddWithValue("@date1", export_daily_date_DateTimePicker2.Value)
cmd.Parameters.AddWithValue("@date2", export_daily_date_DateTimePicker2.Value)
于 2014-02-13T18:22:11.700 に答える