Ich ändere den Code einer anderen Person, wenn eine Abfrage mit folgendem Befehl ausgeführt wird:
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlString, sqlConn);
da.Fill(ds);
Wie kann ich feststellen, ob das DataSet leer ist (d. H. Es wurden keine Ergebnisse zurückgegeben)?
Wenn ich es richtig verstanden habe, sollte dies für Sie funktionieren
if (ds.Tables[0].Rows.Count == 0)
{
//
}
Sie müssen den Datensatz nicht testen.
Die Fill()
-Methode gibt die Anzahl der hinzugefügten Zeilen zurück.
Es ist keine gültige Antwort, da es einen folgenden Fehler gibt
Tabelle 0 kann nicht gefunden werden.
Verwenden Sie stattdessen die folgende Anweisung
if (ds.Tables.Count == 0)
{
//DataSet is empty
}
Sie sollten alle Tabellen durchlaufen und prüfen, ob table.Rows.Count 0 ist
bool IsEmpty(DataSet dataSet)
{
foreach(DataTable table in dataSet.Tables)
if (table.Rows.Count != 0) return false;
return true;
}
Update: Da eine DataTable gelöschte Zeilen RowState = Deleted
enthalten kann, kann es eine gute Idee sein, stattdessen DefaultView
zu überprüfen (die keine gelöschten Zeilen enthält).
bool IsEmpty(DataSet dataSet)
{
return !dataSet.Tables.Cast<DataTable>().Any(x => x.DefaultView.Count > 0);
}
Wir können insgesamt drei Möglichkeiten überprüfen.
if(ds != null)
if(ds.Tables.Count > 0 )
if(ds.Tables[0].Rows.Count > 0)
Dieser Code zeigt einen Fehler wie Table[0] can not be found!
An Position 0 wird keine Tabelle angezeigt.
if (ds.Tables[0].Rows.Count == 0)
{
//
}
So prüfen Sie, ob das Dataset leer ist oder nicht.
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlString, sqlConn);
da.Fill(ds);
if(ds != null && ds.Tables.Count > 0)
{
// your code
}
Bei der Rückgabe von Ergebnissen aus einer SQL-Abfrage stelle ich fest, dass Tabellen [0] vorhanden sind, aber keine Zeilen enthalten. Also in meiner Situation hat das funktioniert:
if (ds.Tables [0] .Rows.Count == 0) // leer
Das hat nicht funktioniert:
if (ds.Tables.Count == 0)
Fill
is gibt immer zurück, wie viele Datensätze in die Datenmenge eingefügt wurden.
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlString, sqlConn);
var count = da.Fill(ds);
if(count > 0)
{
Console.Write("It is not Empty");
}
MySqlDataAdapter adap = new MySqlDataAdapter(cmd);
DataSet ds = new DataSet();
adap.Fill(ds);
if (ds.Tables[0].Rows.Count == 0)
{
MessageBox.Show("No result found");
}
die Abfrage empfängt die Daten im Datensatz und überprüft dann den Datensatz, der leer ist, oder enthält einige Daten. dafür tun wir ds.tables [0] .Rows.Count == o Dies zählt die Anzahl der Zeilen, die sich im Datensatz befinden. Wenn die obige Bedingung erfüllt ist, ist der Datensatz leer, dh ds ist leer.
Vergessen Sie nicht, den Tabellennamen .__ einzustellen. da.Fill (ds, "Tabellenname");
Sie geben also Daten mit dem Tabellennamen anstelle von 0 zurück
if (ds.Tables["tablename"].Rows.Count == 0)
{
MessageBox.Show("No result found");
}