来自表的无效演员阅读数据

时间:2012-11-15 05:49:35

标签: c# asp.net casting

我的用户表中有一个名为Admin的字段tinyint(1)。 1表示管理员,0表示普通用户。

我想在用户登录时设置一个会话变量,无论是真还是假,取决于他们是否是管理员。

if ((int)Reader["Admin"] == 0)
{
    HttpContext.Current.Session["Admin"] = false;
}
else
{
    HttpContext.Current.Session["Admin"] = true;
}

ReaderSqlDataReader。该代码产生以下错误:

  

System.InvalidCastException:指定的强制转换无效。

如何正确地将Reader["Admin"]转换为int?

3 个答案:

答案 0 :(得分:3)

那是因为tinyint变成了System.Byte,无法显式地转换为System.Int32

您必须使用Convert.ToInt32(Byte)

答案 1 :(得分:0)

tinyint在C#中转换为Byte。将演员表/条件更改为

 (Byte)Reader["Admin"] == 0

答案 2 :(得分:0)