2016-07-28 27 views
0

Wie rufen Sie die Daten nach einer while-Schleife ab?Der Wert, der innerhalb der while (read()) -Schleife gespeichert wird, kann den Wert außerhalb der Schleife nicht abrufen. While loop

con220.Open(); 
SqlDataReader rdr2 = cmd220.ExecuteReader(); 

while (rdr2.Read()) 
{ 
    TAT = rdr["TAT"].ToString();    
} 

con220.Close(); 
MessageBox.Show(TAT);//ERROR: use of unassigned local variable TAT 
+2

Ich schlage vor, dass Sie aufhören, ADO.NET-Rohcode zu schreiben. Es gibt keinen Grund mehr, dies mit den unzähligen exzellenten Tools zu tun. Betrachten Sie etwas wie Dapper. –

Antwort

1
string TAT = string.Empty; 
while (rdr2.Read()) 
{ 
    TAT = rdr["TAT"].ToString(); 
} 

con220.Close(); 
MessageBox.Show(TAT); 
1

Der Compiler hat zu überprüfen, ob die lokale Variable wird in allen Pfaden zugewiesen, die ausgeführt werden könnten. In Ihrem Fall wird der while-Block möglicherweise nicht ausgeführt, wenn der Leser leere Ergebnisse zurückgegeben hat. So kann der Compiler nicht wirklich verifizieren, dass TAT garantiert zugewiesen wird.

So können Sie dies vor der While-Schleife tun.

string TAT = null;