[英]C#.NET using block
我想在DAL層中使用“using”塊。 喜歡
using (SqlConnection con = new SqlConnection("connection string"))
{
Command object
Reader object
}
由於在使用塊中初始化的SqlConnection對象,我知道當控件退出使用塊作用域時,將自動處理此連接對象。
但我在使用塊內創建Command和Reader對象。 我是否必須明確地關閉它們,或者我必須為它們寫另一個“使用”塊。
您應該使用using
命令和讀者一樣好,甚至明確地關閉它們。
我通常這樣編碼:
var sql = "SELECT * FROM table";
using (var cn = new SqlConnection(connectionString))
using (var cmd = new SqlCommand(sql, cn)) {
}
這限制了身份的數量。
您通常也會為那些編寫使用塊,即。
using (SqlConnection con = new SqlConnection("connection string"))
{
con.Open();
using (SqlCommand cmd = con.CreateCommand())
{
cmd.CommandText = "select * from table";
using (SqlDataReader reader = cmd.ExecuteReader())
{
...
}
}
}
值得為任何支持IDisposable接口的代碼編寫一個using塊。 通過這種方式,您可以確保盡可能地釋放任何稀缺資源。
您可以為實現IDispose
任何項目using
塊。 因此,您可以在連接塊內為每個嵌套using
塊,以確保在使用后對它們進行適當處理。
如果您不喜歡使用連接和讀者,則應使用using()
或finally
塊。 對於讀者來說,在閱讀器關閉之前,連接不會關閉。 另外我已經讀過, using()
並不是100%保證連接將被關閉但我不知道背后的原因,因為它被轉換為try - finally塊並且將在任何條件下執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.