2010-08-25 28 views
0

我正在打開一個到數據庫的連接,在該數據庫中,我需要在關閉連接之前發出多個刪除操作。我有以下代碼,但它看起來很奇怪所有使用語句。有一個更好的方法嗎?這是在連接/命令中使用using語句的正確方法嗎?每個OracleConnection有多個Oracle命令

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

寫一個函數:

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

是的。我明白你的意思了。我真正想知道的是使用using語句和連接/命令的正確方法。我可以看到這個問題在這個問題上並不明顯。 – brainimus 2010-08-25 21:16:53

+0

我不熟悉這個特定的API。如果該命令是異步的,那麼使用是一個壞主意。 – 2010-08-25 21:35:54

0

您正確使用using聲明。 OracleConnectionOracleCommand都應該在完成之後處理完畢,並且using語句是在方法範圍內完成此操作的最明確方式。

有關如何配置ConnectionPooling的一些細微之處,但我認爲這超出了你的問題的範圍。


*注意,OracleConnection線程安全的,這意味着,如果你試圖重新使用OracleConnection情況下,那麼你必須確保多個線程不會同時使用相同的實例時間。