2016-07-28 2 views
0

whileループの後にデータを取得するにはどうすればよいですか?while(read())ループの内部に格納されている値は、ループ中に値を取得できません

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

生のADO.NETコードの作成をやめることを強くお勧めします。そこには無数の優れたツールがありますので、これ以上の理由はありません。 Dapperのようなものを考えてみましょう。 –

答えて

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

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

コンパイラは、ローカル変数は、実行可能性のあるすべてのパスに割り当てられていることを確認しなければなりません。あなたの場合、リーダーが空の結果を返した場合、whileブロックは実行されないかもしれません。したがって、コンパイラはTATが確実に割り当てられることを確認できません。

これは、whileループの前に行うことができます。

string TAT = null; 
関連する問題