2013-08-23 2 views
0

У меня есть Listview, связанный с функцией GetAmountStyles(). Когда эта функция запущена, она создает 44 sql-соединения. Независимо от того, где я пытаюсь закрыть SQL-соединение, он не будет закрыт. Где и как я могу закрыть эти соединения?Закрыть .netslclient data provider in function

protected string GetAmountStyle() 
{ 
    //Makes SQl connection 
    SqlConnection testDBconn = new SqlConnection(ConfigurationManager.ConnectionStrings["testDBconn"].ConnectionString); 
    //SqlCommand cmd = new SqlCommand(); 
    testDBconn.Open(); 

    System.Data.SqlClient.SqlCommand CurrAllsessions = new System.Data.SqlClient.SqlCommand("Select UserName from TenHrsLogins union Select UserName from permlogins ", testDBconn); 
    SqlDataReader dr = CurrAllsessions.ExecuteReader(); 
    string Login = Convert.ToString(Eval("Login")); 




    while (dr.Read()) 
    { 
     //if (Login.Contains(dr.GetValue(0).ToString()) == true) 
     if (Login.Contains(dr.GetValue(0).ToString()) == true) 
     { 

      dr.Dispose(); 
      return "background-color: #FFC6C6;"; 



     } 
     else 
     { 



     } 


    } 
    dr.Dispose(); 
    testDBconn.Close(); 
    return "testDBconn.Close();"; 
} 

ответ

1

Вы возвращения

return "background-color: #FFC6C6;"; 

, прежде чем закрыть соединение. Как правило, используйте использование, не нужно явно размещать или закрывать. Пример:

using(var testDBconn = new SqlConnection(...)) { 
    testDBconn.Open(); 
    // do whatever you like with connection, it will close automatically 
    using(var dr = CurrAllsessions.ExecuteReader()) { 
    // do whatever you like with data reader 
    } 
}