[英]Retrieving data from SQL Server in ASP.NET using C#
我已成功创建了一个母版页来上传和编辑数据,并已在我的客户端页面主页上成功检索到该数据。 现在这是我的问题,在我的主页中,我有 5 个中继器从 5 个文本和图像表中检索数据:
这是我用于检索数据的代码:
private DataTable GetData(string query)
{
string conString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
SqlCommand cmd = new SqlCommand(query);
using (SqlConnection con = new SqlConnection(conString))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
return dt;
}
}
}
}
private void rpt_slider()
{
try
{
DataTable dt1 = this.GetData("select top(5)* from H_slide");
rpt_sli.DataSource = dt1;
rpt_sli.DataBind();
}
catch (Exception)
{
}
}
在页面加载时:
protected void Page_Load(object sender, EventArgs e)
{
// homepage slider
rpt_slider();
// news
rpt_news();
// featured post
rpt_feat();
// principal notes
rpt_notes();
// about college
rpt_about();
}
检索所有数据需要花费大量时间,尤其是在互联网速度较慢的情况下。 那么是否可以一一检索数据呢? 首先是主页滑块,几秒钟后是新闻数据,然后是关于大学等的数据,因此所有数据不是一次加载,而是每隔几秒钟加载一次。 我花了几天时间研究,但没有找到任何解决方案,我不知道是否有可能做到这一点,但如果有任何解决方案,有人请帮助我。
谢谢你。
相反,在我看来,这真的很简单。 使用任务并行库(这需要.NET 4.5),如果5种类型的数据相互独立。 从 db 异步获取所有这些数据并将它们绑定到转发器。 这应该会显示出很大的性能提升。
还要遵循@codingyoshi 建议的分页建议。
如果这种性能改进还不够,请回来,我会建议一些其他更改。
Parallel.Invoke{()=>(
{
// homepage slider
rpt_slider();
},
{
// news
rpt_news();
},
{
// featured post
rpt_feat();
},
{
// principal notes
rpt_notes();
},
{
// about college
rpt_about();
}
)};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.