存储在while(read())循环内部的值无法在循环外检索值

时间:2016-07-28 04:38:44

标签: c# while-loop ado.net

如何在while循环后检索数据?

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 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

编译器必须验证是否在可能执行的所有路径中分配了本地变量。在您的情况下,如果读者返回空结果,则可能无法执行while块。因此,编译器无法真正验证TAT是否可以保证分配。

所以你可以在while循环之前完成这个。

string TAT = null;