Überprüfen, ob SQL-Abfrage eine Reihe ausliefert
-
Hi,
ich bin absoluter Neuling in C#. Ich hoffe, das euch meine Informationen ausreichen, um mir zuhelfen, ansonsten einfach Nachfragen. Obwohl es sicher ein häufiges Problem ist, konnte mir die Suchfunktion nicht helfen, da ich nicht weiß, wonach ich suchen muss.
Folgendes:
Ich habe eine SQL Abfrage, die mir vielleicht eine Reihe ausgibt, vielleicht aber auch keine. Nun brauche ich eine Möglichkeit um festzustellen, ob eine Reihe [0] existiert, damit ich sie dann gegebenenfalls ausgeben kann.
Ich hoffe es ist versändlich worauf ich hinaus will.Viele Grüße aus Hamburg,
Netrus
-
Das kannst Du so
using ( SqlConnection conn = new SqlConnection("...")) { SqlCommand cmd = new SqlCommand("SELECT ...", conn); conn.Open(); using( SqlDataReader dr = cmd.ExecuteReader() ) { dr.Read(); if( dr.HasRows ) { MessageBox.Show( "Rows vorhanden" ); } } }
oder so machen.
using ( SqlConnection conn = new SqlConnection("...")) { SqlCommand cmd = new SqlCommand("SELECT ...", conn); SqlDataAdapter da = new SqlDataAdapter(cmd ) ; DataSet ds = new DataSet(); da.Fill( ds ); if( ds.Tables[0].Rows.Count > 0 ) MessageBox.Show( "Rows vorhanden"); }
-
soweit ich weis reicht schon
if(dr.read()) { //true wenn Zeile vorhanden }
-
Ein einfacher SqlReader (also die straight forward variante) bieten soweit ich weiss keine angaben darüber, wieviele reihen/rows er enthalten wird(!).
Bleibt nur der Weg über SqlAdapter -> DataSet. Was bei "kleinen" Datenbankabfragen natürlich mit Kanonen auf Spatzen ...
Also die Read()-Variante
-
Aber mit HasRows weiß ich, ob Daten vorhanden sind oder nicht.
-
_C_ater schrieb:
Ein einfacher SqlReader (also die straight forward variante) bieten soweit ich weiss keine angaben darüber, wieviele reihen/rows er enthalten wird(!).
Bleibt nur der Weg über SqlAdapter -> DataSet. Was bei "kleinen" Datenbankabfragen natürlich mit Kanonen auf Spatzen ...
Also die Read()-Variante
aldo du kannst auch
while(dr.read()) { DataRow row = myTable.NewRow(); row["1.Spalte"] = dr["1.Spalte"] //usw.... myTable.AddRow(row); }
voraussetzung ist, das du die Tabelle vorher erzeugt hast aber dann ist das alles völlig dynamisch