所以我有一个 if 语句如下
DataTable table = new DataTable();
MySqlCommand select = new MySqlCommand("SELECT personID, address_addressID from person WHERE email='" + emailAddress + "' and password = '" + passwordR + "'", connect); //brings back the person ID if user details are correct
using (MySqlDataAdapter adapter = new MySqlDataAdapter(select))
{
adapter.Fill(table);
string sessionVar = table.Rows[0]["personID"].ToString();
Session["personID"] = sessionVar;
int sessionVarAddress = Int32.Parse(table.Rows[0]["address_addressID"].ToString());
Session["address_addressId"] = sessionVarAddress;
我希望能够在 if 语句之外使用变量“sessionVar”,这可以吗?
最佳答案
如果要在代码块外部使用变量,则必须在外部声明它:
string sessionVar;
using (...)
{
sessionVar = table.Rows[0]["personID"].ToString();
}
例如,当它是 if
、foreach
、while
等 block 时,您可能会遇到麻烦。不保证将设置该变量。然后,您必须设置默认值,或者例如在 else
分支中分配一个值。
所以不是这样的:
string sessionVar;
if (...)
{
sessionVar = table.Rows[0]["personID"].ToString();
}
// using sessionVar here will yield a compiler error.
但是像这样:
string sessionVar;
if (...)
{
sessionVar = table.Rows[0]["personID"].ToString();
}
else
{
sessionVar = null;
}
// using sessionVar is allowed now.
关于c# - 如何将表数据存储在不会被删除的变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42948271/