人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VC#を勉強しています。
今、accessのmdbファイルにoledbで接続してInsertやUpdateクエリを実行するプログラムを作っているのですが、パラメータクエリの生成方法やパラメータの置き換え方法がわかりません。

具体的には、
OleDbCommand oledb = new System.Data.OleDb.OleDbCommand("INSERT INTO InfoTest (test1,test2) VALUES(?,?)", connection);

とした後に、どういう方法で"?"をパラメータに置き換えて実行をすればいいのかがわからずに困っています。

また、こういったoledb経由でmdbを操作するのを勉強する際に役立つHPや書籍などを教えていただけると助かります。 よろしくお願いします。


●質問者: syou11
●カテゴリ:コンピュータ
✍キーワード:access Hp MDB VC クエリ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● degucho
●50ポイント

ADOをお使いになったことはありますか?

基本的にOleDbParameterをCommand.Parametersコレクションに

AddしてやってExecuteNonQueryするだけ(変な日本語だ)

あまりいいページがみつからないのですが

http://www.atmarkit.co.jp/fdotnet/basics/adonet03/adonet03_02.ht...

http://www.microsoft.com/japan/msdn/net/books/ProgADONET/chapter...

http://support.microsoft.com/kb/310070/ja

こんな感じです

きっちりやるなら高いですがこれがお勧めです。

プログラミングMicrosoft ADO.NET (マイクロソフト公式解説書)

もうすぐ新版がでるようです

http://bpstore.nikkeibp.co.jp/item/main/148910054980.html

◎質問者からの返答

すいません、具体的に質問文に書いたソースにどういう内容を追加していけばいいか教えていただけるとありがたいのですが…

mdbの場合は「@名前」じゃなくて「?」なのも余計混乱する原因になっています。


2 ● degucho
●50ポイント

コードに合わせる場合


OleDbParameter p1 = oledb.Parameters.Add("@適当な名前1", OleDbType.テーブルに合わせた型);

OleDbParameter p2 = oledb.Parameters.Add("@適当な名前2", OleDbType.テーブルに合わせた型);


と定義しておいて、実行したいところで

p1.Value = xxxxx;

p2.Value = xxxxx;

oledb.ExecuteNonQuery();


となります。


プレースホルダとの対応は「順序」となります。

?の出てきた順序とコレクションを追加した順序が対応します。

名前は、重複しなければなんでもいいですがテーブルの列名が

わかりやすいかとおもいます。


ちなみに、試してみればわかりますが、名前付きでも動きます。

しかし名前で対応してくれずあくまで順序になります。

◎質問者からの返答

ばっちりできました!

ありがとうございます!!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ