2つの日付で表される所定の期間内にデータを取得するSQL文を実行しようとしています。私は私がSQLパラメータを交換していたパラメータの値が正しい値であることを確認しているが、私はまだ、この例外を取得しています:データ型DateTimeを使用したParamaterized SQL C#
をSMALLDATETIMEする文字列を変換
構文エラーここではC#のコードは次のとおりです。
SqlCommand command = new SqlCommand("SELECT date, @Data FROM datasite WHERE date > '@Start' and date < '@End'", conn); command.Parameters.AddWithValue("@Data", dataType); var start = dateRange.StartDate.ToShortDateString(); var end = dateRange.EndDate.ToShortDateString(); command.Parameters.AddWithValue("@Start", start); command.Parameters.AddWithValue("@End", end); command.Connection.Open(); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { //... }
に 'DateTime'自体を渡しますか? 'command.Parameters.AddWithValue(" @ Start "、dateRange.StartDate); ' –"SELECT date, @Data FROM datasite WHERE date > @Start and date < @End"
DateTimeとして渡すと、同じ例外が発生します。 – aiokos
パラメータを使用する場合は、これらの単一引用符を削除します。 '' @ Start''は '@ Start'でなければなりません – LarsTech