如何将SQL结果从一个页面传递到另一个页面C#asp.net
本文关键字:net C#asp 另一个 一个 SQL 结果 | 更新日期: 2023-09-27 18:24:34
我正在构建一个web应用程序,该应用程序将具有多个表单页面,用于从数据库中提取数据并导出到excel。
为了避免我复制相同的代码导出到excel,我制作了一个输出页面,其中包含一个网格视图和一个按钮,单击该按钮可以运行我的导出到excel代码。
我将sql查询或存储过程的结果从表单页面传递到输出页面,方法是将数据表存储在会话对象中,并将其设置为gridview的数据源。
然而,我不知道某些结果会有多大,也不知道有多少用户会同时使用这些表单,所以我预计会话对象不是最好的主意。
如有任何想法,我们将不胜感激,谢谢。
其中一个表单页面的C#代码
DataTable myDataTable = new DataTable();
string myConnectionString = //connectionstring text
SqlConnection myConnection = new SqlConnection(
ConfigurationManager.ConnectionStrings[myConnectionString].ConnectionString);
string mySQL = //built sql query
SqlDataAdapter myDataAdaptor = new SqlDataAdapter(mySQL,myConnection);
using(myDataAdaptor)
{
myDataAdaptor.Fill(myDataTable);
}
Session["Output"] = myDataTable;
Response.Redirect("output.aspx");
输出页面上的C#代码
protected void Page_Load(object sender, EventArgs e)
{
gvOutput.DataSource = Session["Output"];
gvOutput.DataBind();
}
您基本上必须将值存储在页面、会话、以sessionid为键的缓存范围之外,序列化和反序列化值只是其中的几个。
对于不太容易访问的页面会话来说,inproc会话为频繁访问的页面提供这些数据怎么样?
这基本上是一个设计选择,应该根据页面上的流量、预测的数据大小等进行考虑。
会话是宝贵的,如果管理不善,可能会影响性能。想象一下,随着应用程序的增长,查询会返回大量数据。
简而言之,如果您的页面访问率不高,并且您存储的会话数据适合您的硬件,那么会话是一个公平的选择。