2012-07-25 66 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>