代码之家  ›  专栏  ›  技术社区  ›  brainimus user417509

每个OracleConnection有多个OracleCommands

c#
  •  0
  • brainimus user417509  · 技术社区  · 14 年前

    我正在打开一个到数据库的连接,在该数据库中,我需要在关闭连接之前发出多个删除操作。我有以下代码,但是对于所有的using语句来说,它看起来很奇怪。有更好的方法吗?这是将using语句与连接/命令一起使用的正确方法吗?

    using(OracleConnection oracleConnection = new OracleConnection(connectionString))
    {
        string table1Command= "DELETE FROM TABLE1...";
        using(OracleCommand oracleCommand = new OracleCommand(table1Command, oracleConnection))
        {
            oracleCommand.ExecuteNonQuery();
        }
    
        string table2Command= "DELETE FROM TABLE2...";
        using(OracleCommand oracleCommand = new OracleCommand(table2Command, oracleConnection))
        {
            oracleCommand.ExecuteNonQuery();
        }
    }
    
    2 回复  |  直到 14 年前
        1
  •  2
  •   user180326    14 年前

    编写函数:

    void InvokeCommand (OracleConnection oracleConnection, string tableCommand) 
    {
         using(OracleCommand oracleCommand = new OracleCommand(tableCommand, oracleConnection)) 
         { 
             oracleCommand.ExecuteNonQuery(); 
         } 
    }
    
        2
  •  0
  •   Thracx    14 年前

    您正在使用 using 陈述正确。两个 OracleConnection OracleCommand 应该在你用完后处理,并且 使用 语句是在方法边界内执行此操作的最清晰的方法。

    关于如何配置连接池有一些微妙之处,但我认为这超出了您的问题范围。


    * 请注意 Oracle连接 类是 线程安全,这意味着如果您尝试重新使用 Oracle连接 然后,您必须确保多个线程不会同时使用同一个实例。