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.

  1. if(Dr1.read()) - auf diese Weise funktionieren. Aber nach dem ausführen If Aussage ,es hat keinen Wert für die Anzeige auf den Etiketten , da read() erhöht den Zeiger. Als Ergebnis label1 ,Label2.. Nichts angezeigt.

  2. 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

Schreibe einen Kommentar