asp.net中一个登陆窗口实现不同用户跳转到不同页面,但是不知道怎么能在登陆的时候判断用户组

我是这样写的,但是不对,希望高人指点指点,
BLL.UserInfoBLL bll = new BLL.UserInfoBLL(); BLL.RolesBLL Rolbll = new BLL.RolesBLL();
string SessionUserName = Session["UserName"].ToString();
DataSet ds1 = Rolbll.GetRoleName(int.Parse( bll.GetRoleID(SessionUserName).ToString()));//就是这里不对,不知道该咋写了
try
{
if (ds1.Tables[0].Rows[0]["RoleName"].ToString() == "管理员用户")
{
Response.Redirect("admin.aspx");
}
else
{
Response.Redirect("Default.aspx");
}
}
catch (Exception ex )
{

Response.Write("<script>错误,错误原因:"+ex);
}
GetRoleName和GetRoleID返回值都是DataSet型,错误提示是:输入字符串错误

第1个回答  2013-03-14
你可以直接取输入文本框的值,不需要从session里取。然后对照你的数据库判断跳转。追问

Rolbll.GetRoleName(int.Parse( bll.GetRoleID(UserNametext).ToString(),这样的话前面还是不对的啊GetToleName()里面要int型的

第2个回答  2013-03-14
bll.GetRoleID(SessionUserName) 的返回值是什么类型的?看错误应该是int.Parse的问题,没有getroleid没有返回值。追问

返回值是DataSet型

追答

bll.GetRoleID(SessionUserName).ToString(),这里改一下
(bll.GetRoleID(SessionUserName)).Tables[0].Rows[0][0].ToString()

追问

错误提示还是输入字符串错误

追答

DataSet ds = bll.GetRoleID(SessionUserName);
你调试一下,看看返回的ds是什么样子的。

追问

现在好了 ,刚才替换位置错了,不好意思啊

本回答被提问者采纳
第3个回答  2013-03-14
报了什么错? 贴出看看.。追问

输入字符串错误

追答

打个断点 看看 SessionUserName 是不是空值
string str= bll.GetRoleID(SessionUserName).ToString() 看看str 是不是空值;

追问

sessionUserName里面不是空,主要是GetRoleID是DataSet数据集,还有GetRoleName里面也是一样的事DataSet数据集

追答

你是说 GetRoleID 方法返回的是 DataSet?
那你 bll.GetRoleID(SessionUserName).Tables[0].Rows[0]["RoleID"].ToString()

RoleID 表字段 你改改 试试

追问

错误还是在ds1的位置,错误提示依然是输入字符串错误

追答

先注销下
//DataSet ds1 = Rolbll.GetRoleName(int.Parse( bll.GetRoleID(SessionUserName).ToString()))
断点一下 DataSet test= bll.GetRoleID(SessionUserName);

右键test快速监视 看看test 的table 的length 是否大于0,可能你查出来的DataSet数据集就是空值 取不到 RoleID。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网