2016-07-08 10 views
1

ASP.NET 2.0 FrameworkSqlDataSource - Select mit Session-Variablen Filter

Ich versuche, alle benutzerbezogenen Einträge aufzulisten, wenn der Benutzer besucht die Seite. Ich habe eine Session-Variable mit dem Besucher in der Sitzung festgelegt. Jetzt möchte ich die Datenbank mit dieser ID abfragen. Es scheint ausgeführt zu werden, aber es werden keine Ergebnisse zurückgegeben (ich zeige den Inhalt in einem separaten Codeabschnitt an).

Bitte helfen!

<asp:SqlDataSource 
ID="UserReports" 
runat="server" 
ConnectionString= "<%$ ConnectionStrings:MyConnectionString %>" 
SelectCommand = "SELECT [ID], [ReportName], [ReportPath] FROM [Pan].   
[dbo].[Reports] WHERE ([VisitorID] = @VisitorID)" 
OnSelecting = "SqldsExample_Selecting"> 

<SelectParameters> 
    <asp:Parameter Name="VisitorID" Type="String"/> 
</SelectParameters>  
</asp:SqlDataSource> 

On the code behind: 

Sub SqldsExample_Selecting(sender As Object, e As  
SqlDataSourceSelectingEventArgs) 

UserReports.SelectParameters.Add("@VisitorID", Session("VisitorID")) 

End Sub 
+0

ich für VB bin auf der Suche, nicht C# bitte. – Kana

+0

Sie können sich die Antwort von marc_s im folgenden Beitrag ansehen: http://stackoverflow.com/questions/17000390/assiging-parameters-to-sqldatasource. – ConnorsFan

Antwort

0

nicht <asp:Parameter> Verwenden .Sie <asp:SessionParameter> verwenden sollten direkt auf die Session-Variablen zuzugreifen:

<SelectParameters> 
    <asp:SessionParameter Name="VisitorID" SessionField="VisitorID" /> 
</SelectParameters> 
+0

Danke Dennis. Mit Ihrem Vorschlag bekomme ich Folgendes: Compiler Fehlermeldung: BC31143: Methode 'Protected Sub SqlDataSource1_Selected (Absender als Objekt, e als System.Web.UI.WebControls.SqlDataSourceStatusEventArgs)' hat keine Signatur mit Delegate kompatibel 'Delegieren Sub SqlDataSourceSelectingEventHandler (Absender als Objekt, e wie System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs)'. – Kana

+0

Entfernen Sie den Event-Handler vollständig. Legen Sie die Sitzung in der Seite laden oder auf der vorherigen Seite und greifen Sie auf das Beispiel, das ich zur Verfügung gestellt. Sehen Sie sich dieses Beispiel - http://forums.asp.net/t/1062765. aspx? sqldatasource + mit + Sitzung + Daten + in + select + Parameter.Erfahren Sie genau die Art, wie ecbruck schlägt –

+0

Danke Dennis. Der Event-Handler für die Auswahl wurde vollständig entfernt. Und die Sitzung wird auf dem pageLoad festgelegt. Session ("VisitorID") = userID Jetzt bekommen: Parser-Fehlermeldung: Der Server-Tag nicht gut ausgebildet. Quellfehler: Zeile 15: Kana

Verwandte Themen