每个OracleConnection有多个OracleCommands

时间:2010-08-25 21:07:52

标签: c#

我正在打开一个数据库的连接,我需要在关闭连接之前发出多个删除。我有以下代码,但所有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 个答案:

答案 0 :(得分:2)

写一个函数:

void InvokeCommand (OracleConnection oracleConnection, string tableCommand) 
{
     using(OracleCommand oracleCommand = new OracleCommand(tableCommand, oracleConnection)) 
     { 
         oracleCommand.ExecuteNonQuery(); 
     } 
}

答案 1 :(得分:0)

您正在使用using语句。完成后,OracleConnectionOracleCommand都应处理掉,using语句是在方法范围内执行此操作的最明确方式。

关于如何配置ConnectionPooling有一些细微之处,但我认为这超出了你的问题的范围。


*请注意,OracleConnection线程安全,这意味着如果您尝试重新使用OracleConnection个实例,那么您必须制作确保多个线程不会同时使用同一个实例。