2012-08-24 31 views
1

我有这样的代码重新连接的SqlDataAdapter

DataTable dt= new DataTable(); 
    SqlDataAdapter da; 


    private void LoadData() 
     { 
      using (SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["cnn"].ConnectionString)) 
      { 


      da = new SqlDataAdapter("Select * from table",cnn);     
      da.Fill(dt); 

      } 

     } 

的连接将被关闭后,对不对? 如果我想更新DataTable,如何重新连接到cnn?

+0

会发生什么当您设置UpdateCommnd? http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldataadapter.updatecommand(v=vs.100).aspx –

+0

当你说update时,你的意思是再次从新条目中选择在桌子上? –

回答

0

是的,using语句将调用SqlConnection上的Dispose。见using Statement

要以这种方式重新连接,您需要使用另一个using语句在原始using语句中进行更新或更新。

+0

谢谢。我应该实例化一个新的SqlDataAdapter,以便我可以把连接放在构造函数中? –

+0

您应该能够在SqlDataAdapter对象上设置命令并重用它。 – johnnadeau

0

Fill方法使用由关联的SelectCommand属性指定的SELECT语句从数据源中检索行。与SELECT语句关联的连接对象必须是有效的,但不需要打开。如果连接在调用Fill之前关闭,则会打开它以检索数据,然后关闭。如果连接在调用Fill之前打开,它将保持打开状态。

来源:See this