Prüfen Sie, ob Sie ein datareader-Zeilen oder nicht Asp.net
Mein code:
string sqlQuery1 = "select * from employees where depid=6";
SqlDataReader Dr1 = dbconn.RunQueryReturnDataReader(sqlQuery1);
if(Dr1.read()) { //or if (Dr1["empname"] != DBNull.Value)
while (Dr1.Read())
{
Label1.Text = Dr1["empname"].ToString();
Label2.Text = Dr1["empdes"].ToString();
...
}
Dr1.Close();
}
else {
Label1.text = "defaultValue";
Label2.text = "defaultValue";
...
}
Ich will einfach nur, um zu überprüfen, SqlDataReader hat keine Datensätze angezeigt. Wenn keine Datensätze ,die labels sollten showdefault Werte vorab festgelegt werden, von mir oder Wenn hat-record-display datareader-Wert auf dem Etikett. (Nehmen an, dass entweder SqlDataReader hat 1 recode oder hat norecord nur)
Wie kann ich überprüfen, erste datareader hasRow oder nicht?
Ich habe zwei Möglichkeiten wie oben code.
-
if(Dr1.read())
- auf diese Weise funktionieren. Aber nach dem ausführenIf
Aussage ,es hat keinen Wert für die Anzeige auf den Etiketten , da read() erhöht den Zeiger. Als Ergebnis label1 ,Label2.. Nichts angezeigt. -
if (Dr1["empname"] != DBNull.Value)
Diese Weise wird eine Ausnahme generiert, wenn Sqldatareader hat norows.
error: System.InvalidOperationException: Invalid attempt to read when no data is present
Bitte helfen Sie mir. tx
InformationsquelleAutor devan | 2012-06-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen...
InformationsquelleAutor Ray Cheng
Wenn Dr1==null wahr ist, wird es aufhören, die Evaluierung, ||(ODER) operator hat keine Notwendigkeit der Bewertung der rechten Seite des Ausdrucks, wenn er weiß, die linke Seite ist wahr.
Nein..haben Sie nicht bekommen. Ich fragte ,was bedeutet es (DataReader = null), und was bedeutet (dataReader.HasRows = false) ? Was ist der Unterschied zwischen Ihnen?
NULL nur bedeutet, dass Sie versuchen, zu nennen Dr1, ist nicht initialisiert (null). Und Hasrows bedeutet, es ist initialisiert, hat aber keine Daten(Zeilen)
InformationsquelleAutor Nikhil D