//自定义方法判断当前管理员是否拥有管理此页面的权限
public bool getSet()
{
string userName = Session["userName"].ToString(); //获取管理员登录名
string sql = "select * from tb_admSet where userName='" + userName + "'";
SqlDataReader sdr = dataOperate.getRow(sql);
sdr.Read(); //读取一条记录
return Convert.ToBoolean(sdr["systemSet"]); //返回是否拥有权限
}
红字部分显示确保列表的最大索引小于列表的大小
确保索引不是负数
确保数据列名称正确
我的systemSet在数据库中是bit类型
try
{
return Convert.ToBoolean(sdr["systemSet"]);
}
catch (Expection ex)
{
//return 一个默认值,或者处理错误
}
{
sdr.Read();
//return sdr.GetBoolean(0);//bit类型可以直接用boolean接收
return Convert.ToBoolean(sdr["systemSet"]??0);//为null则取false
}
或者用ExecuteScalar来获取
修改sql:
string sql = "select systemSet from tb_admSet where userName='" + userName + "'";
object result = cmd.ExecuteScalar()??0;//如果查询结果为null,则取0(False)
return Convert.ToBoolean(result);
sdr["systemSet"]返回的是DBNull,不能用??来判断。cmd.ExecuteScalar()如果null就取false的话也可以不判断:Convert.ToBoolean(null);//false