C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: SQLで日付比較


(過去ログ 77 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■45722 / inTopicNo.1)  SQLで日付比較
  
□投稿者/ D.A (18回)-(2010/01/19(Tue) 11:16:01)

分類:[.NET 全般] 

2010/01/19(Tue) 11:17:02 編集(投稿者)

たびたび質問させていただいてすみません。

フォームにあるDatetimePicker1(Dtp_Start)及びDatetimePicker2(Dtp_End)から選択された日付を取得し、DBからデータを検索したいのですが、COUNT(*)を取得すると、
クエリ式 'COUNT(*)' の 構文エラー : 演算子がありません。となります。
SELECT *だとうまくいっているのですが、うまくいかない原因がわかりません。

Dim cmd as New OleDb.OleDbCommand
Dim DataCnt as Integer = 0
Dim StaDate as Date = Nothing
Dim EndDate as Date = Nothing

StaDate=Dtp_Start.Value.Date
EndDate=Dtp_End.Value.Date

cmd = "SELECT COUNT(*) FROM DB1 WHERE HDate BETWEEN @StartDate AND @EndDate"
cmd.Parameters.Add("@StaDoDt", OleDb.OleDbType.Date).Value = StaDate
cmd.Parameters.Add("@EndDoDt", OleDb.OleDbType.Date).Value = EndDate

DataCnt = cmd.ExecuteScalar ここでエラー

HDateは日付/時間型です。

よろしくお願い致します。
引用返信 編集キー/
■45727 / inTopicNo.2)  Re[1]: SQLで日付比較
□投稿者/ Asell (1回)-(2010/01/19(Tue) 12:17:50)
No45722 (D.A さん) に返信
> 2010/01/19(Tue) 11:17:02 編集(投稿者)
> 
> 
> cmd = "SELECT COUNT(*) FROM DB1 WHERE HDate BETWEEN @StartDate AND @EndDate"
> cmd.Parameters.Add("@StaDoDt", OleDb.OleDbType.Date).Value = StaDate
> cmd.Parameters.Add("@EndDoDt", OleDb.OleDbType.Date).Value = EndDate
> 
> DataCnt = cmd.ExecuteScalar ここでエラー
> 
単純にSELECT文で指定しているパラメータ  @StartDate と @EndDate
とパラメータで追加しているパラメータ名称 @StaDoDt と @EndDoDt
が異なるからでは?
 

引用返信 編集キー/
■45728 / inTopicNo.3)  Re[1]: SQLで日付比較
□投稿者/ tonton (5回)-(2010/01/19(Tue) 12:56:54)
SELECT COUNT(*) FROM DB1

SELECT COUNT(*) AS CNT FROM DB1
としても駄目ですか?
引用返信 編集キー/
■45732 / inTopicNo.4)  Re[1]: SQLで日付比較
□投稿者/ みきぬ (717回)-(2010/01/19(Tue) 13:30:51)
> Dim cmd as New OleDb.OleDbCommand

> cmd = "SELECT COUNT(*) FROM DB1 WHERE HDate BETWEEN @StartDate AND @EndDate"

OLEDB って、名前つきパラメータ使えたっけ?

cmd = "SELECT COUNT(*) FROM DB1 WHERE HDate BETWEEN ? AND ?"
引用返信 編集キー/
■45779 / inTopicNo.5)  Re[2]: SQLで日付比較
□投稿者/ QQ (25回)-(2010/01/19(Tue) 21:27:49)
DB接続情報がないのでは?
cmd = new OleDb.OleDbCommand(SQL文,DbConnection)
DbConnectionは、DB接続情報(OleDbConnection)


引用返信 編集キー/
■45811 / inTopicNo.6)  Re[3]: SQLで日付比較
□投稿者/ D.A (19回)-(2010/01/20(Wed) 13:12:56)
No45779 (QQ さん) に返信
> DB接続情報がないのでは?
> cmd = new OleDb.OleDbCommand(SQL文,DbConnection)
> DbConnectionは、DB接続情報(OleDbConnection)
>
>

ありがとうございます。色々と試しているうちにうまくいくようになりました。
自己解決で申し訳ないです。

接続情報は省略させていただきました。分かりにくくて、すみません。

他の箇所でoleDbでパラメータ使えていますので、その点は大丈夫かと思います。
引用返信 編集キー/
■45812 / inTopicNo.7)  Re[4]: SQLで日付比較
□投稿者/ D.A (20回)-(2010/01/20(Wed) 13:13:11)
No45811 (D.A さん) に返信
> ■No45779 (QQ さん) に返信
>>DB接続情報がないのでは?
>>cmd = new OleDb.OleDbCommand(SQL文,DbConnection)
>>DbConnectionは、DB接続情報(OleDbConnection)
>>
>>
>

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -