C# 在sql查询中使用aspx页面中的会话变量

C# 在sql查询中使用aspx页面中的会话变量,c#,asp.net,C#,Asp.net,我在aspx页面中有sqldatasource,在查询中我想使用一个参数,即来自会话的参数 下面是我的密码,请帮我 <asp:SqlDataSource runat="server" ID="MySQLData2" ConnectionString='<%$ConnectionStrings:ConnectionString %>' ProviderName="MySql.Data.MySqlClient" SelectCommand="SELECT * FROM tablen

我在aspx页面中有sqldatasource,在查询中我想使用一个参数,即来自会话的参数

下面是我的密码,请帮我

<asp:SqlDataSource runat="server" ID="MySQLData2"
ConnectionString='<%$ConnectionStrings:ConnectionString %>'
ProviderName="MySql.Data.MySqlClient"
SelectCommand="SELECT * FROM tablename  WHERE id="Here I want to use session variable"" />

使用参数非常简单:

 <asp:SqlDataSource id="Employees" runat="server"
  ConnectionString="<%$ ConnectionStrings:Northwind%>"
  SelectCommand="SELECT LastName FROM Employees WHERE Title = @Title">
  <SelectParameters>
    <asp:ControlParameter Name="Title" 
      ControlID="DropDownList1"
      PropertyName="SelectedValue"/>
  </SelectParameters>
</asp:sqldatasource>

只需将参数值替换为变量:

 <%= Sessiom[variable_name] %>

使用参数非常简单:

 <asp:SqlDataSource id="Employees" runat="server"
  ConnectionString="<%$ ConnectionStrings:Northwind%>"
  SelectCommand="SELECT LastName FROM Employees WHERE Title = @Title">
  <SelectParameters>
    <asp:ControlParameter Name="Title" 
      ControlID="DropDownList1"
      PropertyName="SelectedValue"/>
  </SelectParameters>
</asp:sqldatasource>

只需将参数值替换为变量:

 <%= Sessiom[variable_name] %>

这篇文章应该能满足您的需要。基本上,您可以使用参数占位符“?”定义SelectCommand,然后使用SessionParameter条目定义SelectParameters集合。

本文将为您提供所需内容。基本上,您可以使用参数占位符“?”定义SelectCommand,然后使用SessionParameter的条目定义SelectParameters集合。

试试这个

<asp:SqlDataSource runat="server" ID="MySQLData2"
    ConnectionString='<%$ConnectionStrings:ConnectionString %>'
    ProviderName="MySql.Data.MySqlClient"
    SelectCommand="SELECT * FROM tablename  WHERE id=@SessionVar">
  <SelectParameters>
     <asp:SessionParameter Name="SessionVar" SessionField="SessionVariableName" ConvertEmptyStringToNull="true" />
  </SelectParameters>
</asp:SqlDataSource>

试试这个

<asp:SqlDataSource runat="server" ID="MySQLData2"
    ConnectionString='<%$ConnectionStrings:ConnectionString %>'
    ProviderName="MySql.Data.MySqlClient"
    SelectCommand="SELECT * FROM tablename  WHERE id=@SessionVar">
  <SelectParameters>
     <asp:SessionParameter Name="SessionVar" SessionField="SessionVariableName" ConvertEmptyStringToNull="true" />
  </SelectParameters>
</asp:SqlDataSource>



约翰尼的答案非常准确,但我想指出,有一个类可以用于此:

<asp:SqlDataSource runat="server" ID="MySQLData2"
    ConnectionString='<%$ConnectionStrings:ConnectionString %>'
    ProviderName="MySql.Data.MySqlClient"
    SelectCommand="SELECT * FROM tablename WHERE id= ?" />
      <SelectParameters>
          <asp:SessionParameter
            Name="id"
            SessionField="SessionVariableName"
            DefaultValue="0" />
      </SelectParameters>
  </asp:SqlDataSource>

约翰尼的答案非常准确,但我想指出,有一个类可以用于此:

<asp:SqlDataSource runat="server" ID="MySQLData2"
    ConnectionString='<%$ConnectionStrings:ConnectionString %>'
    ProviderName="MySql.Data.MySqlClient"
    SelectCommand="SELECT * FROM tablename WHERE id= ?" />
      <SelectParameters>
          <asp:SessionParameter
            Name="id"
            SessionField="SessionVariableName"
            DefaultValue="0" />
      </SelectParameters>
  </asp:SqlDataSource>


请编辑您的问题标题!!!它真的有什么意义吗?请编辑你的问题标题!!!这真的有什么意义吗?谢谢John..但这不起作用,因为它给了我运行时异常,您在查询中遇到问题。我的查询是正确的,因为当我运行它时,它运行良好,用会话变量替换常量值。谢谢John..但这不起作用,因为它给了我运行时异常,您遇到了问题查询。我的查询是正确的,因为当我用会话变量替换常量值时,它运行得很好。你确定这可以工作吗?数据源如何将@SessionVar与SessionParameter关联?SessionVar和SessionVariableName是否应该有所不同?我认为应该是
Name=“SessionVar”SessionField=“SessionVariableName”
,或者你只使用
,就像Mryeros在回答中指出的那样。你确定这会奏效吗?数据源如何将@SessionVar与SessionParameter关联?SessionVar和SessionVariableName是否应该有所不同?我认为应该是
Name=“SessionVar”SessionField=“SessionVariableName”
,或者您只使用
,就像mreyeros在回答中指出的那样。