• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

各位大侠帮忙解决一下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
...全文
155 点赞 收藏 14
写回复
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]
回复 点赞
萝卜先生与兔公主 2012年04月18日
[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日
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告