C# Can';无法从会话中检索值

C# Can';无法从会话中检索值,c#,sql,asp.net,session,C#,Sql,Asp.net,Session,我想将会话Id变量传递给SQLDataSource SelectParameter,如下所示: <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:conString %>" SelectCommand="SELECT DISTINCT * FROM [employees] WHERE ([username] =

我想将会话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']) %>"
DefaultValue=“”

您应该使用
SessionParameter
而不是
QueryStringParameter

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


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

您应该使用
SessionParameter
而不是
QueryStringParameter

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


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

您应该使用
SessionParameter
而不是
QueryStringParameter

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


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

您应该使用
SessionParameter
而不是
QueryStringParameter

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

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

尝试以下操作:

<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>

试试这个:

<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>

试试这个:

<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>

试试这个:

<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>

@badar:需要更多帮助吗?我正在使用SessionParameter,但asp没有选择它。当我不用的时候。我得到这个错误:必须声明标量变量“@username”。帕特里克,你能帮忙吗?网上的任何教程。我试过了,但仍在努力。我只想动态地将会话Id值传递给SelectParameter。您应该设置参数的名称。更新了答案。@badar:需要更多帮助吗?我正在使用SessionParameter,但asp没有选择它。当我不用的时候。我得到这个错误:必须声明标量变量“@username”。帕特里克,你能帮忙吗?网上的任何教程。我试过了,但仍在努力。我只想动态地将会话Id值传递给SelectParameter。您应该设置参数的名称。更新了答案。@badar:需要更多帮助吗?我正在使用SessionParameter,但asp没有选择它。当我不用的时候。我得到这个错误:必须声明标量变量“@username”。帕特里克,你能帮忙吗?网上的任何教程。我试过了,但仍在努力。我只想动态地将会话Id值传递给SelectParameter。您应该设置参数的名称。更新了答案。@badar:需要更多帮助吗?我正在使用SessionParameter,但asp没有选择它。当我不用的时候。我得到这个错误:必须声明标量变量“@username”。帕特里克,你能帮忙吗?网上的任何教程。我试过了,但仍在努力。我只想动态地将会话Id值传递给SelectParameter。您应该设置参数的名称。更新了答案。