2012-07-25 64 views
0

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

下面是我的code.Please帮助我。

<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"" /> 
+0

请编辑您的问题标题!这是否意味着什么? – 2012-07-25 12:45:53

回答

2

试试这个

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

你确定,这会工作吗?数据源如何将@SessionVar与SessionParameter相关联? – Hinek 2012-07-25 12:48:08

+1

'SessionVar'和'SessionVariableName'应该不同吗? – freefaller 2012-07-25 12:48:10

+0

我认为它应该是'Name =“SessionVar”SessionField =“SessionVariableName”'或者你只是使用'?'就像他的答案中指出的mreyeros。 – Hinek 2012-07-25 12:50:09

0

使用参数是相当简单:

<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] %> 
+0

谢谢约翰..但这不工作,因为它给我的运行时异常,你在查询中有问题。我的查询是正确的,因为它运行良好时,我运行它用会话变量替换常量值。 – 2012-07-25 12:47:43

1

MSDN文章应该得到你所需要的。基本上,您将使用参数占位符“?”定义您的SelectCommand,然后使用SessionParameter的条目定义您的SelectParameters集合。

0
 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="Data Source=LAZY-PC;Initial Catalog=Test;Integrated Security=True" 
     ProviderName="System.Data.SqlClient" SelectCommand="SELECT * FROM [C] WHERE ([C#] = @column1)"> 
     <SelectParameters> 
      <asp:SessionParameter Name="column1" SessionField="id" Type="String" /> 
     </SelectParameters> 
    </asp:SqlDataSource> 
0

Johnny_D的回答是相当多地方,但我想指出的是,有一个SessionParameter类,您可以使用此:

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