为什么要编译错误“使用未分配的局部变量”?

Rag*_*ad -2 c# oledbcommand

我一直收到此错误,但我不知道为什么,我在这里得到它:Label1.Text = fgmail.ToString(); 这是完整的代码:

string st = this.pfun.Text;
string sqlstr2 = "select * from hsinfo WHERE rname='" + st + "'";
OleDbCommand cmd = new OleDbCommand(sqlstr2, DBFunction.GenerateConnection("DBS.accdb"));
OleDbDataReader reader = cmd.ExecuteReader();
string fgmail;

while (reader.Read())
{
    fgmail = reader[1].ToString();
}

Label1.Text = fgmail.ToString();
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 7

如果reader没有行,则永远不会分配该变量。