Anzahl der Datensätze ermitteln !



  • Guten Tag,

    ich versuche mich gerade in einer kleinen Datenbank Anwendung.
    was auch schon gut kappt!

    Womit ich ein Problem habe ist nach einer DB Abfrage,
    im Ergebnis zu sehen wie viele Datensätze vorhanden sind.

    Zurzeit zähle ich die Datensätze nach der Abfrage mit einer while schleife weil ich keine andere Möglichkeit kenne bzw. finde.

    Daher meine Frage:"Gibt es eine Möglichkeit die Anzahl der Reihen abzufragen?"

    SqlCeResultSet cers_QuerySuchen;  // ergebniss Zwischenspeichern
    
    // abfrage ausführen !!
    int Anzahl = 0;
    if (cers_QuerySuchen.HasRows)
       while (cers_QuerySuchen.Read())
          Anzahl++
    


  • Hi,

    die einzige mir bekannte Möglichkeit ist vorher ein "SELECT COUNT(*) FROM table" abzusetzen. Solltest du aber WHERE statements in der Abfrage benutzen, dann kann das natürlich entsprechend inperformant sein (je nachdem wie gut deine Indizes benutzt werden können). Wenn du die Daten also sowieso brauchst, dann ist deine beschriebene Variante wohl die beste.

    mfG
    KaPtainCugel



  • Ich kenne deine Datenbank-Bibliothek zwar nicht, aber mit etwas Glück hat sie auch Funktionen zum Ermitteln, wieviele Datensätze von einem SQL-Aufruf betroffen waren. Ansonsten würde ich die Verarbeitung so umbauen, daß du die Anzahl nicht im Voraus benötigst.



  • Umbauen kann ich meine Applikation leider nicht,

    Es geht sich darum um zu verhindern das ich Datensätze doppelt in die Datenbank schreiben. d.h. Bevor ich ein INSERT ausführe prüfe ich mit der SQL abfrage ob der Datensatz evtl. schon vorhanden ist.

    Ist das Ergebnis = 0 wir Insert ausgeführt.

    dafür würde schon "cers_QuerySuchen.HasRows" ausreichen, nur sollte das Ergebnis > 1 sein möchte ich noch eine Funktion ausführen,
    Daher hätte ich gerne die Anzahl.



  • Na ja, wenn du einfach ein normales DataSet anstatt des SqlCeResultSet vewendest, kannst du sowas machen:

    DataSet dataSet = ...;
    DataTable dataTable = dataSet.Tables[0];
    int rowCount = dataTable.Rows.Count;
    

    Lies dich einfach mal in DataSet/DataAdapter ein und schau, ob das eine Option für dich wäre. Ansonsten musst du wirklich erst ein SQL-Count statement an die DB absetzen.


Anmelden zum Antworten