当我们在aspx页面上有多个用户控件时,避免数据库往返

时间:2011-07-28 13:56:29

标签: asp.net controls call

我的aspx页面上有多个用户控件,每个用户控件都调用它自己的服务或方法来显示从SQL DB中检索的内容。我想减少这些往返次数,并在一次通话中完成工作。不知道什么是最佳实践。

1 个答案:

答案 0 :(得分:0)

您可以将所有选择语句放在一个存储过程中,这意味着您将只使用一次数据库并使用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
}

我希望能给你一个好主意

相关问题