C# 准备好的语句和多个查询

标签 c# .net ado.net odbc prepared-statement

是否可以使用相同的准备好的语句(相同的 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/

相关文章:

C# 生成 depedancies 图形/图表?

.net - 如何在WinForm应用程序中实现应用程序范围的颜色代码?

.net - Rhino 模拟 : How to mock ADO. NET 的 DataRow?

c# - 不能使用 columnwidth excel 属性

c# - ASP.NET Core依赖注入(inject): The Difference Between Factory and Instance?

c# - 为什么 TreeView 控件创建空白节点?

linq - 我应该如何开始学习 ADO.NET Entity Framework ?

c# - 企业库 5.0 强行关闭事件连接

C# .NET 正则表达式问题

c# - 在 C# 中解析 html 的最佳方法是什么?