Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

ExecuteNonQuery für SELECT-SQL-Anweisung, die keine Zeilen zurückgibt

Die ExecuteNonQuery Method gibt die Anzahl der Zeilen zurück, die von einem INSERT betroffen sind , ein UPDATE oder ein DELETE . Diese Methode soll verwendet werden, um DML-Anweisungen (Data Manipulation Language) auszuführen, wie zuvor erwähnt.

Die ExecuteReader Method gibt die Ergebnismenge eines SELECT zurück . Diese Methode sollte verwendet werden, wenn Sie eine Reihe von Ergebnissen abfragen, wie z. B. Zeilen aus einer Tabelle, einer Ansicht oder was auch immer.

Die ExecuteScalar Method gibt einen einzelnen Wert in der ersten Zeile, ersten Spalte von einem SELECT zurück Erklärung. Diese Methode sollte verwendet werden, wenn Sie erwarten, dass nur ein Wert von der Abfrage zurückgegeben wird.

Kurz gesagt, das ist normal, dass Sie keine Ergebnisse von einem SELECT haben -Anweisung während der Verwendung von ExecuteNonQuery Methode. Verwenden Sie ExecuteReader stattdessen. Verwenden des ExecuteReader -Methode erfahren, wie viele Zeilen durch die Instanz von SqlDataReader zurückgegeben wurden Objekt zurückgegeben.

int rows = 0;

if (reader.HasRows)
    while (reader.Read())
        rows++;

return rows; // Returns the number of rows read from the reader.