DOBON.NETプログラミング道掲示板

■34485 / 1階層)  Access OLEでExecuteNonQuery
□投稿者/ Hongliang 大御所(580回)-(2020/06/16(Tue) 09:27:04)
  • アイコン2020/06/16(Tue) 14:59:34 編集(投稿者)

    > StrSQL = "UPDATE TABLE1 SET DATA1 = @D1 WHERE D2 = @WKEY"

    > para = "@WKEY";
    > cmd.Parameters.Add(new OleDbParameter(para, OleDbType.VarChar));
    > cmd.Parameters[para].Direction = ParameterDirection.Input;
    > cmd.Parameters[para].Value = "TEST";
    >
    > para = "@D1";
    > cmd.Parameters.Add(new OleDbParameter(para, OleDbType.Integer));
    > cmd.Parameters[para].Direction = ParameterDirection.Input;
    > cmd.Parameters[para].Value = 1;

    OLEDBの仕様からくるものだったかと思いますが、OleDbCommandのパラメータは、名前を無視して、単純にAddされた順に、クエリのパラメータ部分に当てはめていく仕様のはずです。
    なのでこの場合、クエリに最初に出現するパラメータ DATA = @D1 のところに、最初にAddされたパラメータ Name:="@WKEY", Type:=OleDbType.VarChar, Value:="TEST" が当てはめられることになります。

    // OleDbを使う場合はクエリ内のパラメータ指示子は基本的に ? を使うので、@xxx が使えるのは知りませんでした。
    // でもどうせ名前は使われないので却ってややこしい部分もありますね。
違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Access OLEでExecuteNonQuery /み →Re[2]: Access OLEでExecuteNonQuery /み
 
上記関連ツリー

Nomalアイコン Access OLEでExecuteNonQuery / み (20/06/16(Tue) 02:06) #34484
Nomalアイコン Access OLEでExecuteNonQuery / Hongliang (20/06/16(Tue) 09:27) #34485 ←Now
  └Nomalアイコン Re[2]: Access OLEでExecuteNonQuery / み (20/06/16(Tue) 21:54) #34486 解決み!
    └Nomalアイコン Re[3]: Access OLEでExecuteNonQuery / Hongliang (20/06/17(Wed) 09:14) #34487 解決み!

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -