小弟最近在学asp.net ,做了一个登陆的界面,下面是登陆代码一部分,不过session有个问题让我困惑很久了。想请教下高手啊其中Session["TPop"] =dss.Tables[0].Rows[0][15].ToString();这行有问题,
通过断点调试时,监视到dss.Tables[0].Rows[0][15].ToString()的值为"a" 但Session["TPop"]值为""但前面有行Session["SPop"] = dss.Tables[0].Rows[0][14].ToString();却是正常的 能把值给Session["SPop"]. 始终想不通为什么??????
————————————————————————分割线 下面是代码————————————————————————
protected void btnLogin_Click(object sender, EventArgs e)
{
if (txtName.Text == string.Empty)
{
Response.Write("<script language=javascript>alert('登录名不能为空!')</script>");
return;
}
else
{
if (Request.QueryString["id"] == "0")
{
Session["ID"] = "0";
DataSet ds = null;
DataSet dss = null;
usermanage.UserName = txtName.Text;
usermanage.UserPwd = txtPwd.Text;
ds = usermanage.Login(usermanage);
dss = usermanage.GetAllUser("tb_User"); if (ds.Tables[0].Rows.Count > 0)
{
Session["Name"] = txtName.Text;
Session["Pop"] = "学生";
Session["SPop"] = dss.Tables[0].Rows[0][14].ToString();
Response.Redirect("Default.aspx");
}
else
{
Response.Write("<script language=javascript>alert('用户名称或密码不正确!')</script>");
}
}
if (Request.QueryString["id"] == "1")
{
Session["ID"] = "1";
DataSet ds = null;
DataSet dss = null;
hostmanage.HostName = txtName.Text;
hostmanage.HostPwd = txtPwd.Text;
ds = hostmanage.Login(hostmanage);
dss = hostmanage.GetAllHost("tb_Host");
if (ds.Tables[0].Rows.Count > 0)
{
Session["Name"] = txtName.Text;
Session["Pop"] = "教师";
Session["TPop"] =dss.Tables[0].Rows[0][15].ToString();
Response.Redirect("Default.aspx");
}
else
{
Response.Write("<script language=javascript>alert('教师名称或密码不正确!')</script>");
}
}
if (Request.QueryString["id"] == "2")
{
Session["ID"] = "2";
DataSet ds = null;
adminmanage.AdminName = txtName.Text;
adminmanage.AdminPwd = txtPwd.Text;
ds = adminmanage.Login(adminmanage);
if (ds.Tables[0].Rows.Count > 0 )
{
Session["Name"] = txtName.Text;
Session["Pop"] = "管理员";
Response.Redirect("Default.aspx");
}
else
{
Response.Write("<script language=javascript>alert('管理员名称或密码不正确!')</script>");
}
}
}
}
通过断点调试时,监视到dss.Tables[0].Rows[0][15].ToString()的值为"a" 但Session["TPop"]值为""但前面有行Session["SPop"] = dss.Tables[0].Rows[0][14].ToString();却是正常的 能把值给Session["SPop"]. 始终想不通为什么??????
————————————————————————分割线 下面是代码————————————————————————
protected void btnLogin_Click(object sender, EventArgs e)
{
if (txtName.Text == string.Empty)
{
Response.Write("<script language=javascript>alert('登录名不能为空!')</script>");
return;
}
else
{
if (Request.QueryString["id"] == "0")
{
Session["ID"] = "0";
DataSet ds = null;
DataSet dss = null;
usermanage.UserName = txtName.Text;
usermanage.UserPwd = txtPwd.Text;
ds = usermanage.Login(usermanage);
dss = usermanage.GetAllUser("tb_User"); if (ds.Tables[0].Rows.Count > 0)
{
Session["Name"] = txtName.Text;
Session["Pop"] = "学生";
Session["SPop"] = dss.Tables[0].Rows[0][14].ToString();
Response.Redirect("Default.aspx");
}
else
{
Response.Write("<script language=javascript>alert('用户名称或密码不正确!')</script>");
}
}
if (Request.QueryString["id"] == "1")
{
Session["ID"] = "1";
DataSet ds = null;
DataSet dss = null;
hostmanage.HostName = txtName.Text;
hostmanage.HostPwd = txtPwd.Text;
ds = hostmanage.Login(hostmanage);
dss = hostmanage.GetAllHost("tb_Host");
if (ds.Tables[0].Rows.Count > 0)
{
Session["Name"] = txtName.Text;
Session["Pop"] = "教师";
Session["TPop"] =dss.Tables[0].Rows[0][15].ToString();
Response.Redirect("Default.aspx");
}
else
{
Response.Write("<script language=javascript>alert('教师名称或密码不正确!')</script>");
}
}
if (Request.QueryString["id"] == "2")
{
Session["ID"] = "2";
DataSet ds = null;
adminmanage.AdminName = txtName.Text;
adminmanage.AdminPwd = txtPwd.Text;
ds = adminmanage.Login(adminmanage);
if (ds.Tables[0].Rows.Count > 0 )
{
Session["Name"] = txtName.Text;
Session["Pop"] = "管理员";
Response.Redirect("Default.aspx");
}
else
{
Response.Write("<script language=javascript>alert('管理员名称或密码不正确!')</script>");
}
}
}
}
解决方案 »
- 调webservice出错。
- 想用.NET数据控件实现这样一个功能,最好提供代码,谢谢
- ◆◇◆ 关于 HttpUtility.UrlEncode 后产生乱码的问题! ◆◇◆
- 谁用过ASPxGrid啊?有没有相关的使用例子啊?
- ~~excel数据怎么导不进数据库??每次都是提示数据导入失败~~帮我看看,代码如下~~
- linkbutton的问题,很急,再现等,请帮帮我 ,谢谢大家!!
- asp.net问题
- 求一个验证金额的方法(在线等)
- uploadify如何把图右上角的X号去掉,因为我下面已有取消的按钮了
- 我在一个Xsd文件中拉了一个表进来,我想用 rpt文件连接这个 xsd文件的表,能找到 xsd文件,但是找不到表。为什么?
- sql 参数parms问题
- repeater问题! 好心人帮帮忙!!! 谢谢了!!!
string aa = dss.Tables[0].Rows[0][15].ToString();
Session["TPop"] = aa;
才有可能有值
dss = usermanage.GetAllUser("tb_User");
Session["SPop"] = dss.Tables[0].Rows[0][14].ToString();
if (Request.QueryString["id"] == "1")
dss = hostmanage.GetAllHost("tb_Host");
Session["TPop"] =dss.Tables[0].Rows[0][15].ToString(); Request.QueryString["id"] 传进来的值只能满足一个条件,根据你的代码,等于"0" or "1" or "2" 所以只有当Request.QueryString["id"] ="1" 时,Session["TPop"]才会有可能不为空(当然是你的数据库字段要不为空)
这样当然 Session["TPop"] 就是为空了,因为没给它赋值