Избегайте обращений к базе данных, когда у нас есть несколько пользовательских элементов управления на странице ASPX - PullRequest
0 голосов
/ 28 июля 2011

У меня есть несколько пользовательских элементов управления на моей странице aspx, и каждый пользовательский элемент управления вызывает свою собственную службу или метод для отображения содержимого, полученного из базы данных SQL. Я хочу сократить эти поездки и выполнить работу за один звонок. Любая идея, что является лучшей практикой.

1 Ответ

0 голосов
/ 28 июля 2011

Вы можете поместить все операторы выбора в одну хранимую процедуру, что означает, что вы попадете в базу данных только один раз и загрузите результат в DataSet, используя SqlAdapter.Fill(MyDataSet), и передадите каждую таблицу в вашем наборе данных соответствующему пользовательскому элементу управления с помощьюсоздание публичной собственности с DataTable типом

public class UserControl_1
{
   private DataTable _dbTable;
   public DataTable dbTable;
   {
      get
      {
          return _dbTable;
      }
      set
      {
         _dbTable = value
      }
   }
}

на вашей странице

Private DataSet myDataSet;
public void Page_Load(Object sender,EventArgs e)
{
   myDataSet = PopulateData(); // call your stored procedure inside it
   UserControl_1.dbTable = myDataSet.Tables[0];
   UserControl_2.dbTable = myDataSet.Tables[1];

   //... and so on
}

Я хотел бы дать вам хорошую идею

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...