schleife in schleife

  • Hallo, ich glaub ich bin grade zu doof ne schleife zu bauen ^^ ... ich hoffe jemand kann mir dabei helfen


    also ich habe ein array mit Namen, die bei jedem aufruf unterschiedlich angeordnet sind und das array ist auch nicht immer gefüllt


    nun möchte ich dieses array mit meiner datenbank abgleichen, wenn der Name nicht drin ist, dann füge ihn ein und wenn er schon drin ist untersuche den nächsten namen.


    hier ist mein code:





    habe nun eine andere lösung gefunden.




    aber evtl weiß jemand trotzdem ob das mit meinem ersten lösungsansatz gehen würde ;p

  • Ich würde dir erstmal empfehlen mit einem Object-Relation-Mapper zu arbeiten, empfehlen kann ich da nHibernate, das hat den Vorteil, dass du für Standart Abfragen wie das holen aller Datensätze, eines Datensatzes, UPDATE, CREATE, DELETE usw. keine eigenen Querys erstellen musst, aber das nur am Rande.


    Die zweite Lösung ist sehr bescheiden, da du da viel zu oft an die Datenbank gehst und das dein Programm extrem ausbremsen wird.


    Ich würde wie folgt vorgehen:
    1. Hole eine Liste aller Namen in der DB
    2. Lösche alle Einträge aus "name" die in der Liste der DB vorhanden sind (siehe dazu List.remove)
    3. Füge die verbleibenden Elemente in die DB ein.

  • Das geht auch, aber ist unpraktisch, wenn er mit der Liste noch was machen will bspw. für den Benutzer ausgeben, so dass der weiß welche Datensätze erstellt wurden.
    Ist aber reine Spekulation ,da der TE sich seit knapp 2 Wochen nemmer gemeldet hat ;)

  • Nur eine Anmerkung nebenbei. Die Klasse MySqlConnection implementiert das Interface IDisposable. Das bedeutet, dass du using-Direktiven verwenden kannst. Das bringt vor allem zwei Vorteile:

    • Lesbarkeit siehe unten. Mit der using-Direktive sieht das ganze etwas übersichtlicher aus.
    • Dispose, die using-Direktive kümmert sich selbst darum die verbindung zu trennen und Ressourcen wieder freizugeben.


    Das ganze würde wie folgt aussehen:


    Code
    1. using (MySqlConnection con = new MySqlConnection(deinConnectionString))
    2. {
    3. using (MySqlCommand com = con.CreateCommand())
    4. {
    5. com.CommandText = "Select Name FROM Kunde";
    6. con.Open();
    7. //usw......
    8. }
    9. }