我点登录后就这样了“/source/第5章学生管理系统/源代码/ST_StuManager”应用程序中的服务器错误。
--------------------------------------------------------------------------------未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 堆栈跟踪:
[NullReferenceException: 未将对象引用设置到对象的实例。]
LoadLibraryW(UInt16* ) +0
System.EnterpriseServices.Thunk.Security.Init() +76
System.EnterpriseServices.Thunk.Security.SuspendImpersonation() +81
System.EnterpriseServices.Platform.Initialize() +503
System.EnterpriseServices.ResourcePool..ctor(TransactionEndDelegate cb) +11
System.Data.SqlClient.ConnectionPool..ctor(DefaultPoolControl ctrl) +797
System.Data.SqlClient.PoolManager.FindOrCreatePool(DefaultPoolControl ctrl) +170
System.Data.SqlClient.SqlConnectionPoolManager.GetPooledConnection(SqlConnectionString options, Boolean& isInTransaction) +358
System.Data.SqlClient.SqlConnection.Open() +384
STGROUP.ST_default.st_btn_enter_Click(Object sender, EventArgs e) in E:\Myproject\asp.net\ST_StuManager\default.aspx.cs:57
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1277
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Configuration;namespace STGROUP
{
/// <summary>
/// ST_default 的摘要说明。
/// </summary>
public class ST_default : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button st_btn_enter;
protected System.Web.UI.WebControls.TextBox st_tbx_userid;
protected System.Web.UI.WebControls.TextBox st_tbx_userpwd;
protected System.Web.UI.WebControls.Label st_lbl_note;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
} #region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.st_btn_enter.Click += new System.EventHandler(this.st_btn_enter_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void st_btn_enter_Click(object sender, System.EventArgs e)
{
string st_connstr= ConfigurationSettings.AppSettings["st_dbconn"];
SqlConnection st_conn=new SqlConnection(st_connstr);
st_conn.Open();
string st_sqlstr="select * from ST_users where ST_User_id='"+st_tbx_userid.Text+"'and ST_User_password='"+st_tbx_userpwd.Text+"'";
SqlCommand st_comm=new SqlCommand(st_sqlstr,st_conn);
SqlDataReader st_dreader=st_comm.ExecuteReader();
if(st_dreader.Read())
{ Session["User_id"]=st_dreader["ST_User_id"];
Session["user_power"]=st_dreader["ST_User_power"];
if((int)Session["User_power"]==0)
{
Response.Redirect("ST_query.aspx");
}
else
{
Response.Redirect("ST_student.aspx");
}
}
else
{
st_lbl_note.Text="登录失败!";
}
st_conn.Close();
}
}
}
{
Response.Redirect("ST_query.aspx");
}
else
{
Response.Redirect("ST_student.aspx");
}
程序报57行出错,
我这里看来是以上的代码有问题
Session["User_power"]应该是
Session["user_power"]
而且要判断Session["user_power"]是否为空以后,进行转换int
if( Session["user_power"]!=null ){
int intuser_power=(int)Session["user_power"];
}
怎么不通过调试来查找错误呢???检查连接是否打开,字段名是否正确(st_dreader["ST_User_id"])!