У меня есть класс BasePage.cs, который используется другими файлами .cs вместо System.Web.UI.Page (открытая частичная страница класса: BasePage).
Я использую его для открытия и закрытияСоединения SQL, чтобы убедиться, что каждое соединение SQL закрыто.
Код выглядит следующим образом
{
public class BasePage: System.Web.UI.Page
{
public SqlConnection globalConnection;
protected override void OnInit(EventArgs e)
{
globalConnection = new SqlConnection();
globalConnection.ConnectionString = ConfigurationManager.ConnectionStrings["kontemiConnectionString"].ToString();
globalConnection.Open();
}
protected override void OnUnload(EventArgs e)
{
if (globalConnection != null)
{
globalConnection.Close();
}
}
}
}
До сих пор он работал очень хорошо для меня.Это означает, что каждый раз, когда соединение открывается, оно также закрывается.Или, по крайней мере, я так думал.
Мой вопрос заключается в том, является ли это решение пуленепробиваемым, и каждое отдельное соединение закрывается в случае ошибки обработки во время выполнения кода.При трассировке этого кода, если я специально создаю ошибку 500, она всегда переходит к событию OnUnload и закрывается.
Итак, считаете ли вы это выполнение безопасным? (Чтобы прекратить обсуждение, не следует ли мне открывать SQL, когда он мне действительно нужен, ответьте, что каждая страница, которая использует BasePage, также открывает соединение SQL.)