我是这样写的,但是不对,希望高人指点指点,
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型,错误提示是:输入字符串错误
Rolbll.GetRoleName(int.Parse( bll.GetRoleID(UserNametext).ToString(),这样的话前面还是不对的啊GetToleName()里面要int型的
返回值是DataSet型
追答bll.GetRoleID(SessionUserName).ToString(),这里改一下
(bll.GetRoleID(SessionUserName)).Tables[0].Rows[0][0].ToString()
错误提示还是输入字符串错误
追答DataSet ds = bll.GetRoleID(SessionUserName);
你调试一下,看看返回的ds是什么样子的。
现在好了 ,刚才替换位置错了,不好意思啊
本回答被提问者采纳输入字符串错误
追答打个断点 看看 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。