tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
622
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Pennpann Pennpann ist offline Rookie
    Registriert seit
    Mar 2011
    Beiträge
    9
    Hallo!
    also ich stehe momentan vor einem Laufzeitproblem, der Vorgang an sich den ich realisieren möchte, funktioniert und liefert auch die richtigen Ergebnisse, aber es dauert einfach zu lange.

    Also, ich habe eine Datatable sourceTable, diese fülle ich mit einem OdbcDataAdapter über einen Select, nehmen wir an sourceTable hat nun 3266 Einträge. Nun benötige ich aber noch 3 einzelne Nachselektierungen, über einen JOIN jeglicher Art lässt sich das leider nicht machen, da die Ergebnisse dabei nicht zu 100% korrekt sind.

    Die Nachselektierungen erfolgen über 3 einzelne foreach Schleifen, diese sehen jeweils so aus:

    foreach (DataRow rowOuter in sourceTable.Rows)
    {
    condition = rowOuter["SCHLÜSSEL"].ToString();

    queryString = "SELECT schlüssel, info FROM Tabelle WHERE schlüssel = '" + condition + "'";
    adapter = new OdbcDataAdapter(queryString, connection);

    adapter.Fill(compareTable);
    int i = compareTable.Rows.Count;
    if (rowOuter["Feld1"].ToString() != "blabla" && rowOuter["Feld2"].ToString() != "" && i != 0 )
    {
    DataRow innerRow = compareTable.Rows[0];
    rowOuter["INFO"] = innerRow["INFO"].ToString();
    }
    compareTable.Clear();
    }

    Das funktioniert wie gesagt auch, aber es folgen noch 2 weitere solche foreach Schleifen und mit einer sourceTable der größe 3266 dauert der gesamte Suchvorgang 13 Sekunden - zu lange...

    Es soll also eine sourceTable mit einer compareTable verglichen werden und falls die Zeile i, in der Spalte i, aus der compareTable mit der Zeile i, in der Spalte i, aus der sourceTable übereinstimmt, soll der Inhalt der Zeile x, der Spalte x, aus der compareTable in die Zeile x, der Spalte x, aus der sourceTable kopiert werden.

    Hoffe ich hab das verständlich erklärt...

    Gibt es da vll eine Klasse die darauf aus ist, genau DAS zu realisieren? Ohne das ich jeden Satz der sourceTable einzeln durchlaufen muss...

    Oder eine andere Idee mit der ich die Laufzeit verkürzen kann
     

  2. #2
    Pennpann Pennpann ist offline Rookie
    Registriert seit
    Mar 2011
    Beiträge
    9
    Habs gelöst :P
     

  3. #3
    raiguen raiguen ist offline Mitglied Silber
    Registriert seit
    Feb 2008
    Ort
    Salzhemmendorf(Nds)
    Beiträge
    51
    Zitat Zitat von Pennpann Beitrag anzeigen
    Habs gelöst :P
    Schön für dich
    Und verrätst du uns auch wie?
     
    Es ist erstaunlich, was man alles findet, wenn man etwas sucht...

  4. #4
    Pennpann Pennpann ist offline Rookie
    Registriert seit
    Mar 2011
    Beiträge
    9
    Letzten Endes hab ich einfach LINQ benutzt
     

Ähnliche Themen

  1. Kombobox Vergleich mit zwei Spalten
    Von vbahenning im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 27.10.08, 15:34
  2. Vergleich zwischen zwei Arbeitsblättern
    Von aralkal im Forum Office-Anwendungen
    Antworten: 2
    Letzter Beitrag: 24.10.08, 13:11
  3. Vergleich von zwei Arrays
    Von blubbbla im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 06.11.07, 15:10
  4. Vergleich von zwei Spalten
    Von Nici5 im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 28.12.06, 09:29
  5. Antworten: 2
    Letzter Beitrag: 22.08.04, 17:11