2015-01-21 3 views
0

Я новичок в ASP.NET и обучении самого проблемы в том, что я успешно подключен к базе данных при загрузке страницы я имею в виду, когда метод Page_Load был назван как:Невозможно закрыть соединение с базой данных MySQL

MySqlConnection con = null; 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (con == null) 
    { 
     ConnectDataBase(); 
    } 
} 

и предположим, что он успешно соединяется при загрузке страницы! Теперь я хочу, чтобы закрыть соединение, как:

con.Close(); 

так, где я должен Close() это, потому что я новичок в этой работе, так что я не знаю, могу ли я использовать Page_Close метод и там я могу закрыть соединение.

Может ли кто-нибудь сказать мне любой другой хороший аутентичный способ или идею сделать это. Проблема в том, что я просто хочу закрыть соединение!

+1

Всегда открывать и закрывать его там, где вам это нужно, лучше всего с помощью 'using'-заявление. Вам необходимо (повторно) создать соединение при каждой обратной передаче, поскольку все переменные размещаются на сервере после жизненного цикла страницы. Вы можете сделать его статическим, но [не делайте этого] (http://tinyurl.com/md4ecdo)! Поэтому вместо поля я бы использовал локальную переменную и всегда создавал соединение в методе, в котором он мне нужен. ['Using'-statement] (http://tinyurl.com/kv5oeog) закрывает и соединение даже в случае ошибки. –

ответ

5

Вам необходимо закрыть соединение, как только закончите с ним. Если у вас есть код, который нуждается в базе данных, откройте соединение, получите данные и отключите их.

Это всегда лучше использовать using, так как он будет закрыть и утилизировать соединение для вас (даже при возникновении исключения):

using (MySqlConnection conn = new MySqlConnection()) 
{ 
    // open the connection and use it 
} 

// here it is closed and disposed 
1

Как сказал Тим, вы должны открыть его только тогда, когда вам нужно и использовать using заявление так:

protected void Page_Load(object sender, EventArgs e) 
{ 
    using(var con = new MySqlConnection(<args>)) 
    { 

    } //at the end of this block, the connection will be Disposed automatically. 
} 
Смежные вопросы