2

同じ準備済みステートメント (同じOdbcCommandオブジェクト) で複数のクエリを実行することは可能ですか?

以下は私が持っているコードで、次の例外をスローしています:System.Data.Odbc.OdbcException was caught Message=ERROR [07006] [IBM][CLI Driver] CLI0102E Invalid conversion. SQLSTATE=07006

 ...
        odbcConnection = myConnection.getOdbcConnection();
        odbcConnection.Open();
        odbcCommand = odbcConnection.CreateCommand();
        odbcTrans = odbcConnection.BeginTransaction(IsolationLevel.ReadCommitted);
        odbcCommand.Transaction = odbcTrans;
try{
    odbcCommand.CommandText = queryStatement1();
            odbcCommand.Parameters.AddWithValue("?ID1", parameter1);
            odbcCommand.Parameters.AddWithValue("?ID2", parameter2);
    ...
    odbcCommand.Parameters.AddWithValue("?ID11", parameter3);
    odbcCommand.Prepare();
            odbcCommand.ExecuteNonQuery();


    odbcCommand.CommandText = queryStatement2();
    odbcCommand.Parameters.AddWithValue("?ID1", parameter4);
            odbcCommand.Parameters.AddWithValue("?ID2", parameter5);
    ...
    odbcCommand.Parameters.AddWithValue("?ID13", parameter6);
    odbcCommand.Prepare();
            odbcCommand.ExecuteNonQuery();
    odbcTrans.Commit();
} catch(Exception e){ ... }
...

同じOdbcCommandオブジェクト、2 つの異なるクエリ...

4

1 に答える 1

2

答えを見つけました。コマンドに別のクエリ文字列を割り当てる直前に、コマンド パラメーターをクリアする必要がありました。

...
odbcCommand.ExecuteNonQuery();

            odbcCommand.Parameters.Clear();
            odbcCommand.CommandText = queryStatement2();
...
于 2012-11-06T19:47:13.607 に答える