我的aspx页面上有多个用户控件,每个用户控件都调用它自己的服务或方法来显示从SQL DB中检索的内容。我想减少这些往返次数,并在一次通话中完成工作。不知道什么是最佳实践。
答案 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
}
我希望能给你一个好主意