首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于SqlDataource的sessionID

基于SqlDataource的sessionID
EN

Stack Overflow用户
提问于 2013-09-17 19:38:34
回答 1查看 117关注 0票数 0

我有下面的代码,我试图使用这些代码来创建基于sqldatasource的动态网格视图。我遇到的问题是,我使用的sqldatasource.ID是基于SessionID的。现在,当我在page_load上调用它时,一切看起来都很好,但是如果刷新页面它就不工作了,现在我知道了为什么,这是因为我在page_load中有一个if语句,它检查回发是否存在,如果不是,它用getDefaultGrid()函数加载很好,但是如果它是回发,我尝试重新加载getDefaultGrid()函数,但是这次我试图传递sqldatasource ID,它不工作,或者我只是做错了。任何帮助都是非常感谢的!

代码语言:javascript
复制
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        getDefaultGrid(getSessionID(), startGrid());
    }
    else
    {
        getDefaultGrid(getSessionID(), (SqlDataSource)getSessionID());
    }

}



protected void getDefaultGrid(string sessionID, SqlDataSource ds)
{
    ds.SelectCommand = "SELECT * FROM [temp] WHERE SessNum = @SESSNUM";
    ds.SelectParameters.Add("SESSNUM", sessionID);

    GridView1.DataSource = ds;
    GridView1.DataBind();
}


protected SqlDataSource startGrid() 
{
    string ConnString = ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString;

    String currentSessionID = getSessionID();
    SqlDataSource sqlDS = new SqlDataSource();
    //sqlDS.ConnectionString = "unionConnectionString";
    sqlDS.ConnectionString = ConnString;
    sqlDS.ID = getSessionID();
    sqlDS.InsertCommand = "INSERT INTO [temp] ([SessNum], [Row], [Size], [Description], [Quantity], [Unit], [Duration], [DurationType], [Amount])VALUES (@SESSNUM, @ROW, @SIZE, @DESCRIPTION, @QUANTITY, @UNIT, @DURATION, @DURATIONTYPE, @AMOUNT)";
    sqlDS.InsertParameters.Add("SESSNUM", currentSessionID.ToString());
    sqlDS.InsertParameters.Add("ROW", "1");
    sqlDS.InsertParameters.Add("SIZE", "Size");
    sqlDS.InsertParameters.Add("DESCRIPTION", "Description");
    sqlDS.InsertParameters.Add("QUANTITY", "Quantity");
    sqlDS.InsertParameters.Add("UNIT", "Unit");
    sqlDS.InsertParameters.Add("DURATION", "Duration");
    sqlDS.InsertParameters.Add("DURATIONTYPE", "DurationType");
    sqlDS.InsertParameters.Add("AMOUNT", "Amount");
    sqlDS.Insert();
    return sqlDS;
}

protected string getSessionID()
{
    string session = HttpContext.Current.Session.SessionID;
    return session;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-17 19:59:06

创建SQLDATASOURCE的一个新实例,并将会话id传递给它们。类似的问题已经被问过了,你可以简单地浏览一下。首先检查存储会话id的页面,然后逐步向前移动。用断点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18858469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档