ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

C#コミュのAccessのオートナンバー型の値をパラメータで取得したい

  • mixiチェック
  • このエントリーをはてなブックマークに追加
皆さんこんばんは。初書き込み&C#初心者です。
実はつまずいていることがありまして、どなたかお答えいただければ幸いです。

今、ちょっとした人物検索のような物を試しにC#で作っています。
データベースにAccess2003を使用しており、カラムには名前や年齢(ともにテキスト型)と、オートナンバー型でIDを付けています。

VisualC#でつくった入力用フォームから、DBにインサートするのはうまくいっているのですが、検索の時に問題が発生してます。

オートナンバー型のID(1000000から始まるインクリメント)を、検索条件に設定するために、SQL文で、
@"SELECT * FROM Member WHERE Member_ID=?" として、
パラメータ”?”にフォームからのIDを引数として渡す処理をしています。

しかし、なぜかDBからデータをとることができません。ためしに検索条件をテキスト型の年齢列に変えてみると、同じ処理でデータがとれます。

原因はオートナンバー型にあるのでしょうか?現在オートナンバー型はint型として扱っています。いろいろ調べて試してみたのですがどうもうまくいきません。
助言お待ちしおります。よろしくお願いいたします。

コメント(3)

こういう場合の鉄則として、まず問題を切り分けてみましょう。
C#のプログラムでSQL文を作っている箇所の直ぐ後にDebug.Printを入れて、実際にAccessに送られているSQLクエリを吐き出してみます。
で、トレースウィンドウからSELECT * FROM Member WHERE MEMBER_ID=1 とかいう文字列が取り出せたら、Accessを直接開いてクエリの新規作成でそのまま貼り付けて、実行結果を見てみるとどうなるでしょう?

期待した値が返ってこなければ、そのままAccess上で期待した動作になるようにクエリを修正してください。
取れないって、エラーが出る?
レコードがヒットしない?

僕もヒラギノさんの言う通り、生のSQLを取得してみて眺めてみるのが良いと思います。
ありがとうごさます。

エラーではなくヒットしないほうです。

さっそく教えていただいた方法を試させていただきます!
ありがとうございました!

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

C# 更新情報

C#のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング