none
Where-Klausel und Variable RRS feed

  • Frage

  • Ich habe eine DropDown-Liste. Wenn ich statt MyVariablen.Land das konkrete Land, zB Deutschland, verwende, funktioniert es, aber es funktioniert nicht mit der Variablen, obwohl ich sie abfragen kann.

    SelectCommand = "SELECT DISTINCT State, LandDE FROM camping WHERE (LandDE = 'MyVariablen.Land') ORDER BY State, LandDE"

    Ich habe schon vieles probiert, leider ohne Erfolg!

    Mein Code:

    <ItemTemplate>
        <table>
            <tr>
                <div class="auto-style11">
                    <asp:DropDownList ID="DropDownLand" runat="server" DataSourceID="SqlDataSource2" AutoPostBack="True" DataMember="DefaultView" DataTextField="LandDE" DataValueField="LandDE">
                    </asp:DropDownList>
                    <% MyVariablen.Land = DropDownLand.SelectedValue %>
                    <% Response.Write(MyVariablen.Land) %>
                    <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:campingConnectionString2 %>" ProviderName="<%$ ConnectionStrings:campingConnectionString2.ProviderName %>" SelectCommand="SELECT Distinct LandDE FROM campingplatz ORDER BY LandDE ASC"></asp:SqlDataSource>
                </div>
            </tr>
        </table>
    </ItemTemplate>
                </td>
                <td class="hauptformLandBundeslandRegion">
    <ItemTemplate>
        <table>
            <tr>
                <div class="auto-style11">
                    <asp:DropDownList ID="DropDownBundesland" runat="server" DataSourceID="SqlDataSource3" AutoPostBack="True" DataMember="DefaultView" DataTextField="Bundesland" DataValueField="Bundesland">
                    </asp:DropDownList>
                    <% Response.Write(DropDownBundesland.SelectedValue) %>
                    <asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:campingConnectionString3 %>" ProviderName="<%$ ConnectionStrings:campingConnectionString3.ProviderName %>" SelectCommand="SELECT DISTINCT Bundesland, LandDE FROM campingplatz WHERE (LandDE = 'MyVariablen.Land') ORDER BY Bundesland, LandDE"></asp:SqlDataSource>
               </div>
            </tr>
        </table>
    </ItemTemplate>


    Montag, 13. September 2021 08:01

Alle Antworten

  • Har denn keiner eine Idee? Es muss doch gehen.
    Mittwoch, 15. September 2021 09:33
  • Hallo Lothar,

    wie bereits mal geschrieben, ist WebForms sicherlich die schlechteste Wahl, um sich heute ASP.NET Kenntnisse anzueignen.

    Noch schlimmer als WebForms an sich sind die unsäglichen Controls/Komponente wie SqlDataSource und Co.

    Wenn Du das dennoch verwenden willst, stell dich bitte auf viel Frustration und Misserfolge ein. Denn vieles geht damit nur sehr umständlich oder auch gar nicht.

    In deinem Fall kannst Du entweder SelectParameter oder FilterExpressions verwenden. Siehe dazu:

      How to: Enable Filtering for the SqlDataSource Control

      Using Parameters with the SqlDataSource Control


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    • Als Antwort vorgeschlagen KHURRAM RAHIM Freitag, 24. September 2021 11:51
    Mittwoch, 15. September 2021 09:41
    Moderator
  • Danke Stefan,

    werde mir überlegen, ob ich WebForms weiter verwenden möchte! Danke für die Hilfe!

    Gruss Lothar

    Mittwoch, 15. September 2021 10:11
  • Hallo Stefan,

    danke für deine kompetende Hilfe. Ich habe jetzt 2 Projekte NET.Framework und NET.Core.

    Ich möchte DropDownListen kaskadieren, aber immer wenn ich z.B. SelectMethod="SelectParameter hinzufüge, kommt ein Fehler.

    <asp:DropDownList ID="DropDownBundesland" runat="server" DataSourceID="SqlDataSource3" AutoPostBack="True" DataMember="DefaultView" DataTextField="Bundesland" DataValueField="Bundesland" SelectMethod="SelectParameter">

    Hab schon 

    <SelectParameters>
               <asp:Parameter Name="LandDE" Type="String" DefaultValue="0" />
    </SelectParameters>

    hinzugefügt. Auch weis ich leider nicht, wo und wohin ich die Abfrage legen kann.

    Public void OnSelectingHandler(object sender, SqlDataSourceSelectingEventArgs e)

    e.Command.Parameters[0].Value=userID

    Bitte um Hilfe!

    Gruss Lothar
    Freitag, 17. September 2021 08:53
  • Hallo Stefan,

    hast Du keine Antwort, warum der Fehler kommt?

    Fehlerbeschreibung: System.InvalidOperationException: DataSource oder DataSourceID können nicht für "DropDownLand" definiert werden, wenn die Modellbindung verwendet wird.

    Gruss Lothar


    Montag, 20. September 2021 12:53