トップ回答者
Access2007のレコードを日付型を条件に抽出する時の問題

質問
-
お世話になっております。
今自分が抱えている問題は、Access2007のレコードを日付/時刻型のフィールドを条件にC#でパラメータクエリを使って抽出しようとすると、
”抽出条件でデータ型が一致しません”
というエラーが出てどうしようもありません。
ソースを一部抜き出すと、
//日付のパラメーター
OleDbParameter olePara3 = oleCmd.CreateParameter();
olePara3.ParameterName = "@Date";
olePara3.DbType = DbType.Date;
olePara3.OleDbType = OleDbType.Date;
olePara3.Value = lblDate.Text.Substring(0, 5) + "01/01"; //2008/01/01という感じにしている
oleCmd.Parameters.Add(olePara3);SQL文
oleCmd.CommandText = "SELECT * FROM T_Result AS R LEFT JOIN T_Team AS T ON R.ID = T.ID " +
"WHERE R.mDate = @Date AND R.setsu = @Setsu AND T.Category = @Category AND T.activeFlag = YES ORDER BY T.ID";という感じでやっています。
克服の方法を知っている方よろしくお願いします。
回答
すべての返信
-
回答ありがとうございます。
ご指摘いただいたことを検証していましたら、重大な原因が判明しました。
OLE DBではパラメータークエリの名前が使われていない感じです。
つまり、SQL文に出てきたパラメータの順番に、OleDbCommand.Parameters.Addしないといけないようです。
これは、仕様なのでしょうか、それとも私の勘違いなのでしょうか。
私のほうは、無事動くことができましたので問題はクリアされましたが、このことについてもう少しみなさんの意見があったら聞きたいなと思うので、もうしばらく閉めないでおきます。
私の環境は
VS2005
Vista
OFFICE2007
です。