是否可以使用相同的准备好的语句(相同的 OdbcCommand
对象)执行多个查询?
下面是我的代码,并抛出以下异常:System.Data.Odbc.OdbcException 被捕获
消息=错误 [07006] [IBM][CLI 驱动程序] CLI0102E 无效转换。 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
对象,两个不同的查询...
最佳答案
找到答案了。我只需要在为命令分配不同的查询字符串之前清除命令参数
...
odbcCommand.ExecuteNonQuery();
odbcCommand.Parameters.Clear();
odbcCommand.CommandText = queryStatement2();
...
关于C# 准备好的语句和多个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13257401/