Откройте базу данных один раз для нескольких методов
Я не хочу открывать и закрывать соединение с базой данных несколько раз на своей странице. Я делаю несколько звонков в базу данных и запускаю несколько хранимых процедур, и это замедляет время загрузки моей страницы.
Как вы можете видеть, я показываю не все методы. Должен же быть более эффективный способ сделать это?
Что я уже пробовал:
protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { this.Method_1(); } } private void Method_1() { string connString = ConfigurationManager.ConnectionStrings["***"].ConnectionString; using (conn = new SqlConnection(connString)) { conn.Open(); using (SqlCommand comm = new SqlCommand("GetStoredProc_1", conn)) { using (SqlDataReader reader = comm.ExecuteReader()) { if (reader.Read()) { Something here is true if(Something here is true) { reader.Close(); LoadSchedule(); LoadTeamRecord(); } else { Response.Redirect("Some Page.aspx"); } } } } } } private void LoadSchedule() { string connString = ConfigurationManager.ConnectionStrings["***"].ConnectionString; using (SqlConnection conn = new SqlConnection(connString)) { conn.Open(); using (SqlCommand comm = new SqlCommand("GetStoredProc_2", conn)) { using (SqlDataReader reader = comm.ExecuteReader()) { myRepeater.DataSource = reader; myRepeater.DataBind(); ......
F-ES Sitecore
Если ваш код медленный, то это ваши sql-команды\sps, которые медленны, а не открытие нескольких соединений. Как уже упоминалось в решениях, ADO реализует пул соединений, поэтому вы на самом деле ничего не открываете и не закрываете, а просто получаете существующие соединения из пула и возвращаете их обратно.