C# 向会话添加新内容
我有一个asp.net下拉列表和一个asp.net gridview控件。 更改dropdownlist元素时,将从数据库中获取新行 我正在将其存储在会话中。下次dropdownlist元素发生更改时,将 是从数据库中获取的新行,我也想将该行添加到会话中 我在下面选择了dropdownlist\u DexChanged事件:C# 向会话添加新内容,c#,asp.net,visual-studio-2010,sql-server-2008,session,C#,Asp.net,Visual Studio 2010,Sql Server 2008,Session,我有一个asp.net下拉列表和一个asp.net gridview控件。 更改dropdownlist元素时,将从数据库中获取新行 我正在将其存储在会话中。下次dropdownlist元素发生更改时,将 是从数据库中获取的新行,我也想将该行添加到会话中 我在下面选择了dropdownlist\u DexChanged事件: protected void ddlClient_SelectedIndexChanged(object sender, EventArgs e) { in
protected void ddlClient_SelectedIndexChanged(object sender, EventArgs e)
{
int x = int.Parse(ddlClient.SelectedValue);
DataSet ds = GetRowFromDatabase( x);
Session["old"] = ds;
((DataSet)Session["old"]).Merge(ds);
gridview.DataSource = Session["old"] ;
gridview.DataBind();
}
每次我的dropdownlist更改时,我都不知道如何在会话变量中添加我的行?所以这确实是
合并的一个问题,对吗?@SqlSamurai请记住,每次分配或使用会话[“变量”]时,都会发生序列化,如果数据量很大,这会影响性能,您可以使用中间变量访问会话变量一次,并在需要时更新它一次
protected void ddlClient_SelectedIndexChanged(object sender, EventArgs e)
{
int x = int.Parse(ddlClient.SelectedValue);
DataSet ds = GetRowFromDatabase( x);
//the first time initialize the session variable
if(Session["old"] == null)
{
Session["old"] = ds;
}
else
{
((DataSet)Session["old"]).Merge(ds);
}
gridview.DataSource = Session["old"] ;
gridview.DataBind();
}