c# - 如何将表数据存储在不会被删除的变量中

标签 c# mysql asp.net

所以我有一个 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();
}

例如,当它是 ifforeachwhile 等 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/

相关文章:

MySQL select 语句返回多个 SUM 和多个 WHERE

mysql通过时间戳获取最新记录而无需子查询

asp.net - Server 2008 RC2、IIS 7.5、ASP.NET 和请求排队性能不佳

c# - 将位图转换为字节数组

MySQL InnoDB 表返回 20% 的行然后停止

c# - UWP 获取实时网络摄像头视频流

c# - 是否可以只在 ASP.Net 中处理 404 错误?

asp.net - Google Protocol Buffers 或类似的 .net/javascript

c# - 如何设置一个具有两个外键的实体?

c# - 如何在thinktecture IdentityServer中禁用自动登录