各位大侠帮忙解决一下c# session的问题

ho112 2012-04-17 07:34:24
我在登陆页面的登陆按钮里面设置了把UserName放入Session里面
    public string MessageBox(string txt,string Url) 
{
string str;
str = "<script language=javascript>alert('"+txt+"');location='"+Url+"'</script>";
return str;
}

  protected void Button1_Click(object sender, EventArgs e)
{
if (i == 1)
{
if(bc.seleSQL("select count(*) from Usersmr where UserName='"+UserName.Text+"' AND UserPwd='"+UserPwd.Text+"'AND Roled='"+qx+"'"))
{
Session["loginName"] = UserName.Text;
Response.Write(bc.MessageBox("学生登陆成功","../student/Text.aspx"));

}
else
{
Response.Write(bc.MessageBox("登录失败,请输入正确的用户名或者密码","Login.aspx"));
}
}
if(i==0)
{
if(bc.seleSQL("select count(*) from Usersmr where UserName='"+UserName.Text+"' AND UserPwd='"+UserPwd.Text+"'AND Roled='"+qxa+"'"))
{
Session["loginName"] = UserName.Text;
Response.Write(bc.MessageBox("教师登陆成功","../teacher/teacher.aspx"));

}
else
{
Response.Write(bc.MessageBox("登录失败,请输入正确的用户名或者密码","Login.aspx"));
}
}
}

现在跳转到第二个页面后我用pageload方法调用出来
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class teacher_teacher : System.Web.UI.Page
{
string a, b;
protected void Page_Load(object sender, EventArgs e)
{
try
{
a = Session["loginName"].ToString();
//Label1.Text = a;
DataBase bc = new DataBase();
Response.Write(bc.MessageBox(a));
//bc.createCon();
//b=bc.getRead("select DepartmentId from Usersmr where UserName='"+a+"'");
//Label2.Text = b;
}
catch (Exception z) { }

}
protected void Button1_Click(object sender, EventArgs e)
{

}
}

但是出现了错误。


“/在线考试系统”应用程序中的服务器错误。
--------------------------------------------------------------------------------

输入字符串的格式不正确。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.FormatException: 输入字符串的格式不正确。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:


[FormatException: 输入字符串的格式不正确。]
System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +7467367
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +119
System.String.System.IConvertible.ToInt32(IFormatProvider provider) +46
System.Convert.ChangeType(Object value, TypeCode typeCode, IFormatProvider provider) +297
System.Web.UI.WebControls.Parameter.GetValue(Object value, String defaultValue, TypeCode type, Boolean convertEmptyStringToNull, Boolean ignoreNullableTypeChanges) +141
System.Web.UI.WebControls.Parameter.GetValue(Object value, Boolean ignoreNullableTypeChanges) +63
System.Web.UI.WebControls.ParameterCollection.GetValues(HttpContext context, Control control) +301
System.Web.UI.WebControls.SqlDataSourceView.InitializeParameters(DbCommand command, ParameterCollection parameters, IDictionary exclusionList) +264
System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +472
System.Web.UI.WebControls.BaseDataList.GetData() +38
System.Web.UI.WebControls.DataList.CreateControlHierarchy(Boolean useDataSource) +153
System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e) +54
System.Web.UI.WebControls.BaseDataList.DataBind() +55
System.Web.UI.WebControls.BaseDataList.EnsureDataBound() +60
System.Web.UI.WebControls.BaseDataList.CreateChildControls() +69
System.Web.UI.Control.EnsureChildControls() +87
System.Web.UI.Control.PreRenderRecursiveInternal() +44
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842




--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.3053; ASP.NET 版本:2.0.50727.3053
...全文
217 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ho112 2012-04-18
  • 打赏
  • 举报
回复
我已经在上一个页面尝试打开session的值了.是可以打开的
 Session["loginName"] = UserName.Text;
string a = Session["loginName"].ToString();
string b =bc.getRead("select DepartmentId from Usersmr where UserName='"+a+"'");
Response.Write(bc.MessageBox(a+b+"教师登陆成功","../teacher/teacher.aspx"));
[Quote=引用 9 楼 的回复:]

if(Session["loginName"]!=null&&Session["loginName"].ToString()!="")
{
a = Session["loginName"].ToString();
//Label1.Text = a;
DataBase bc = new……
[/Quote]
ho112 2012-04-18
  • 打赏
  • 举报
回复
还是这个错误:
输入字符串的格式不正确。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.FormatException: 输入字符串的格式不正确。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:


[FormatException: 输入字符串的格式不正确。]
System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +7467367
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +119
System.String.System.IConvertible.ToInt32(IFormatProvider provider) +46
System.Convert.ChangeType(Object value, TypeCode typeCode, IFormatProvider provider) +297
System.Web.UI.WebControls.Parameter.GetValue(Object value, String defaultValue, TypeCode type, Boolean convertEmptyStringToNull, Boolean ignoreNullableTypeChanges) +141
System.Web.UI.WebControls.Parameter.GetValue(Object value, Boolean ignoreNullableTypeChanges) +63
System.Web.UI.WebControls.ParameterCollection.GetValues(HttpContext context, Control control) +301
System.Web.UI.WebControls.SqlDataSourceView.InitializeParameters(DbCommand command, ParameterCollection parameters, IDictionary exclusionList) +264
System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +472
System.Web.UI.WebControls.BaseDataList.GetData() +38
System.Web.UI.WebControls.DataList.CreateControlHierarchy(Boolean useDataSource) +153
System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e) +54
System.Web.UI.WebControls.BaseDataList.DataBind() +55
System.Web.UI.WebControls.BaseDataList.EnsureDataBound() +60
System.Web.UI.WebControls.BaseDataList.CreateChildControls() +69
System.Web.UI.Control.EnsureChildControls() +87
System.Web.UI.Control.PreRenderRecursiveInternal() +44
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842


[Quote=引用 9 楼 的回复:]

if(Session["loginName"]!=null&&Session["loginName"].ToString()!="")
{
a = Session["loginName"].ToString();
//Label1.Text = a;
DataBase bc = new……
[/Quote]
虫子007 2012-04-18
  • 打赏
  • 举报
回复
a = Session["loginName"].ToString();

在ToString()前 要判断一下 Session["loginName"] 这个对象是不是为空 如果是空 在转换成Sting的时候就会报错!

if(Session["loginName"]!=null&&Session["loginName"].ToString()!="")
a = Session["loginName"].ToString();


还有 string a, b 在声明字符串变量时 最好赋一个初始值
风飘扬 2012-04-18
  • 打赏
  • 举报
回复
调试呀,一步步走,自己就找到问题所在!
xboxeer 2012-04-18
  • 打赏
  • 举报
回复
似乎有个字符串转数字的操作 不过在这儿没看见 LZ能指明哪行出错吗?
那一抹嫣红 2012-04-18
  • 打赏
  • 举报
回复
if(Session["loginName"]!=null&&Session["loginName"].ToString()!="")
{
a = Session["loginName"].ToString();
//Label1.Text = a;
DataBase bc = new DataBase();
Response.Write(bc.MessageBox(a));
}
因为session是容易丢失的,所以可能你设置后session丢失了,最后可能是第一个页面就出错了,看错误页面时在哪个地址?
ho112 2012-04-18
  • 打赏
  • 举报
回复
没人知道吗?
ho112 2012-04-18
  • 打赏
  • 举报
回复
坐等答案........
ho112 2012-04-18
  • 打赏
  • 举报
回复
还是这样的错误,是不是我的字符串转换有问题啊[Quote=引用 5 楼 的回复:]

引用楼主 的回复:
现在跳转到第二个页面后我用pageload方法调用出来
这个地方这么像下面这样写就OK了

C# code


protected void Page_Load(object sender, EventArgs e)
{

if (!IsPostBack)//不加这句 那么首次加载Se……
[/Quote]
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
现在跳转到第二个页面后我用pageload方法调用出来
[/Quote]这个地方这么像下面这样写就OK了



protected void Page_Load(object sender, EventArgs e)
{

if (!IsPostBack)//不加这句 那么首次加载Session是空的 因为 还没有传过来
{
try
{
a = Session["loginName"].ToString();
//Label1.Text = a;
DataBase bc = new DataBase();
Response.Write(bc.MessageBox(a));
//bc.createCon();
//b=bc.getRead("select DepartmentId from Usersmr where UserName='"+a+"'");
//Label2.Text = b;
}
catch (Exception z) { }
}

}

ho112 2012-04-18
  • 打赏
  • 举报
回复
有没有大侠知道我哪错了啊
ho112 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

看下SESSION在文档中的部分就好了
[/Quote]
什么意思啊?应该怎么改?
flyerwing 2012-04-17
  • 打赏
  • 举报
回复
看下SESSION在文档中的部分就好了
insus 2012-04-17
  • 打赏
  • 举报
回复

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧