2016-02-02 20 views
-2
private void a() 
{ 

    string query = ""; 

    using (SqlConnection conn = new SqlConnection("connectionstring here")) 
    { 
     conn.Open(); 

     using (SqlCommand cmd = new SqlCommand(query, conn)) 
     { 
      cmd.ExecuteQuery(); 
     } 
     conn.Close(); 
    } 
} 

private void B() 
{ 

    string query = ""; 
    SqlConnection conn = new SqlConnection("connectionstring here"); 

    conn.Open(); 

    SqlCommand cmd = new SqlCommand(query, conn); 
    cmd.ExecuteQuery(); 

    conn.Close(); 
} 

哪两个更好用?为什么?SqlConnection和SqlCommand编程模式:哪一个更好?

+3

能否请你告诉你的代码为纯文本,而不是图像?而“更好”是一种主观。问问你是否有特定的问题会更好。 –

+0

第一个,因为它使用'使用'。 http://stackoverflow.com/questions/75401/uses-of-using-in-c-sharp – Irshad

回答

2

第一个版本比较好,因为你不必记得连接Close,因为SqlConnection被封装在using语句中。不需要第一版中的conn.Close()调用。该连接将在usingfinally块中关闭。

+0

'SqlCommand' * *实现'IDisposable',因为它来自'Component'。该代码甚至不会编译。所以是的,我会保留这个“使用”声明。 –

+0

@JonSkeet我没有意识到这个:(我会纠正我的答案。谢谢 – Christos

+0

我有点不同意你的_there没有任何需要使用SqlCommand的object_语句。'SqlCommand' _indirectly_继承' Component'实现了一个终结器 –

1

作为一个经验法则:

  • 始终处置IDisposable秒。
  • using最简单。

所以......