我的用户表中有一个名为Admin
的字段tinyint(1)
。 1表示管理员,0表示普通用户。
我想在用户登录时设置一个会话变量,无论是真还是假,取决于他们是否是管理员。
if ((int)Reader["Admin"] == 0)
{
HttpContext.Current.Session["Admin"] = false;
}
else
{
HttpContext.Current.Session["Admin"] = true;
}
Reader
是SqlDataReader
。该代码产生以下错误:
System.InvalidCastException:指定的强制转换无效。
如何正确地将Reader["Admin"]
转换为int?
答案 0 :(得分:3)
那是因为tinyint变成了System.Byte,无法显式地转换为System.Int32
答案 1 :(得分:0)
tinyint
在C#中转换为Byte
。将演员表/条件更改为
(Byte)Reader["Admin"] == 0
答案 2 :(得分:0)