【问题标题】:Can't retrieve value from session无法从会话中检索值
【发布时间】:2014-09-25 22:42:02
【问题描述】:

我想将会话 ID 变量传递给 SQLDataSource SelectParameter 为:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:conString %>"
                SelectCommand="SELECT DISTINCT * FROM [employees] WHERE ([username] = @username)"
                UpdateCommand="UPDATE [employees] SET first_name = @first_name, middle_name = @middle_name, last_name = @last_name, father_name = @father_name, nic = @nic, age = @age, contact_no = @contact_no, gender = @gender, join_date = @join_date, qualification = @qualification, qualification_year = @qualification_year, univ_college = @univ_college, salary = @salary, experience = @experience, remarks = @remarks, status = @status, role = @role, bank_acct_no = @bank_acct_no, bank_name = @bank_name, blood_group = @blood_group WHERE username = @username">
                <SelectParameters>
                    <asp:QueryStringParameter DefaultValue="<%= Response.Write((string)Session['usernameId']) %>" Name="username" QueryStringField="username"
                        Type="String" />
                </SelectParameters>
            </asp:SqlDataSource>

但出现错误,并且无法检索会话 ID。如何评价:

DefaultValue="<%= Response.Write((string)Session['usernameId']) %>"

【问题讨论】:

    标签: c# sql asp.net session


    【解决方案1】:

    您应该使用SessionParameter 而不是QueryStringParameter

    <asp:SessionParameter Name="username" SessionField="usernameId" DefaultValue="fixedValue" Type="String" />
    

    另外,DefaultValue 是一个固定值,而在默认值定义中的Response.Write 是无意义的。 HTML 本身无需写入任何内容,您可以设置服务器端控件的值。

    【讨论】:

    • @badar:需要更多帮助吗?
    • 我正在使用 SessionParameter,但 asp 没有选择它。当我不使用 。我收到此错误:必须声明标量变量“@username”。
    • 先生。帕特里克你能帮忙吗?网络上的任何教程。我已经尝试过,但仍然在静脉中。我只想将会话 ID 值动态传递给 SelectParameter。
    • 您应该设置参数的名称。更新了答案。
    【解决方案2】:

    试试这个:

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:conString %>"
                SelectCommand="SELECT DISTINCT * FROM [employees] WHERE ([username] = @username)"
                UpdateCommand="UPDATE [employees] SET first_name = @first_name, middle_name = @middle_name, last_name = @last_name, father_name = @father_name, nic = @nic, age = @age, contact_no = @contact_no, gender = @gender, join_date = @join_date, qualification = @qualification, qualification_year = @qualification_year, univ_college = @univ_college, salary = @salary, experience = @experience, remarks = @remarks, status = @status, role = @role, bank_acct_no = @bank_acct_no, bank_name = @bank_name, blood_group = @blood_group WHERE username = @username">
                <SelectParameters>
                   <asp:SessionParameter Name="SessionVar" SessionField="usernameId" ConvertEmptyStringToNull="true" />
                </SelectParameters>
            </asp:SqlDataSource>
    

    或者你可以参考这个链接:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sessionparameter.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      • 1970-01-01
      • 1970-01-01
      • 2011-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多