![]() |
ASP.NET und MySQL.NET auslesen eine Shopliste, einfacher?
Hallo Zusammen!
Ich versuche mich krampfhaft in MySQL einzuarbeiten. :roll: Es soll folgende Liste erzeugt werden: AUTOS (10) LKWs (3) Motorräder (3) in der ASPX Datei steh:
Delphi-Quellcode:
Und mein QuellCode sieht so aus:<%#CatList()%></p>
Delphi-Quellcode:
Boh ist das aufwending. Geht das nicht einfacher? Werden bei MySQL wirklich 2 Connections benötigt?
function TWebForm1.CatList:string;
Var Connection1, Connection2 : IDBConnection; command1, command2 : IDbCommand; reader1, reader2 : IDataReader; S : String; begin Connection1 := MySQLConnection.Create('server=localhost;uid=ich;pwd=wasauch;database=fahrzeuge'); Connection2 := MySQLConnection.Create('server=localhost;uid=ich;pwd=wasauch;database=fahrzeuge'); try Connection1.Open; Connection2.Open; command1 := connection1.CreateCommand(); command2 := connection2.CreateCommand(); try command1.CommandText := 'Select * from CatLookup where ID>1'; // 1=keine Auswahl reader1 := command1.ExecuteReader(); try result := ''; while reader1.Read() do begin S := reader1.GetString(1)+ ' ('; command2.CommandText := 'Select COUNT(*) from Shop where Categorie='+reader1.GetString(0); reader2 := command2.ExecuteReader(); try if reader2.Read then begin S := S + reader2.GetString(0)+') '; if reader2.GetInt32(0) > 0 then // Nur wenn Anzahl > 0 auch den Menuepunkt zeigen... Result := result + S; end; finally reader2.Dispose(); end; end; finally reader1.Dispose(); end; finally command1.Dispose(); command2.Dispose(); end; finally Connection1.Close; Connection2.Close; connection1.Dispose(); connection2.Dispose(); end; end; Grüsse Frank :coder: :wall: |
Re: ASP.NET und MySQL.NET auslesen eine Shopliste, einfacher
Ähhhh...... mal ne ganz dumme Frage: Warum läufst Du in einer Tabelle durch und führst für jede Zeile ne eigene Abfrage durch?
Du kannst den COUNT(*) auf der anderen Tabelle doch in das erste Statement mit reinjoinen. Dann hast Du nur ein Statement dass die alle Daten liefert die Du brauchst. |
Re: ASP.NET und MySQL.NET auslesen eine Shopliste, einfacher
Hi!
Wie soll das den Aussehen? Ich habe in der LookUp Tabelle die Texte der Artikelgruppen und in der Shop Tabelle "nur" das CatID. Wie kann ich jetzt in einer Abfrage den Text der einen Tabelle und das COUNT der anderen mit dem entsprechenden Filter erhalten? Und wie soll das aussehen? Frank :wiejetzt: |
Re: ASP.NET und MySQL.NET auslesen eine Shopliste, einfacher
OK
habe mit jetzt folgendes zusammengegoogled... SELECT CatLookup.CatText, COUNT(*) FROM CatLookup JOIN Shop on(Shop.Categorie=CatLookUp.ID) GROUP BY CatLookUp.id Aber wo ist der unterschied zu: SELECT CatLookup.CatText, COUNT(*) FROM CatLookup LEFT JOIN Shop on(Shop.Categorie=CatLookUp.ID) GROUP BY CatLookUp.id Danke... Frank :dp: |
Re: ASP.NET und MySQL.NET auslesen eine Shopliste, einfacher
Ein [b]LEFT[b] Join nimmt die Linke Tabelle als Master. Alle Daten, die zu den Links gefundenen Einträgen die Join-Bedingung erfüllen werden angezeigt. Auf der rechten Seite können ggf. NULL - Values auftreten.
Ein normaler Join verwendet keinen Master. Alle Daten, die zu den Links UND rechts gefundenen Einträgen die Join-Bedingung erfüllen werden angezeigt. Auch Werte, die nur rechts sind (dort wird links dann ein NULL-Eintrag erzeugt). Gleiches für die, dies nur links gibt - hier gibts rechts einen NULL. Ein RIGHT Join ist das gleiche wie der Left nur auf der rechten Seite, will heissen rechts gibts keine NULL's links möglicherweise, aber die rechten Daten sind Ausschlaggebend für die Ergebnismenge. |
Re: ASP.NET und MySQL.NET auslesen eine Shopliste, einfacher
Alles Klar, Danke...
Frank :firejump: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz