我一直在asp.net中设计一个网页,我的项目很成功。然后,我发布了我的网络应用程序。但是,发生以下错误。我怎么能清除它?
'/ sarav'应用程序中的服务器错误。对象引用未设置为对象的实例。
描述:执行当前web>请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误的更多信息以及它在代码中的起源位置。
异常详细信息:System.NullReferenceException:未将对象引用设置为对象的实例。
来源错误: 在执行当前Web请求期间生成了未处理的异常。 >可以使用下面的>异常堆栈跟踪来识别关于异常的起源和位置的信息。
堆栈追踪:
[NullReferenceException:对象引用未设置为对象的实例。] Login.btnLogin_Click(Object sender,EventArgs e)+155 System.Web.UI.WebControls.Button.OnClick(EventArgs e)+105 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)+107 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)+7 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,String eventArgument)+11 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)+33 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+1746
如何清除错误
public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnLogin_Click(object sender, EventArgs e)
{
SqlDataAdapter da = new SqlDataAdapter();
SqlConnection Cnn = new SqlConnection();
DataSet ds = new DataSet();
string constr = null;
SqlCommand cmd = new SqlCommand();
if (IsValid != null)
{
constr = ConfigurationManager.ConnectionStrings["PhotostudioConnectionString"].ConnectionString;
Cnn.ConnectionString = constr;
try
{
if (Cnn.State != ConnectionState.Open)
Cnn.Open();
}
catch (Exception ex)
{
string str1 = null;
str1 = ex.ToString();
}
cmd.Connection = Cnn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "UspGetDataUsrmast";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@usrname", txtUsername.Text);
cmd.Parameters.AddWithValue("@passwrd", txtPassword.Text);
da.SelectCommand = cmd;
try
{
da.Fill(ds);
// cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
string strErrMsg = ex.Message;
//throw new ApplicationException("!!! An Error Occurred While Inserting Record. " + ex.Message);
}
finally
{
da.Dispose();
cmd.Dispose();
Cnn.Close();
Cnn.Dispose();
}
if (ds.Tables[0].Rows.Count > 0)
{
Msg.Text = "Login Successfully";
// da.Dispose();
// cmd.Dispose();
// Cnn.Close();
// Server.Transfer("Home.aspx");
Response.Redirect("PhotosettingsReport.aspx");
}
else
{
Msg.Text = "Login Failed";
}
}
}
}
答案 0 :(得分:1)
如果没有看到代码,就无法猜测是什么对象引发了这个错误。
以调试模式(F5)在Visual Studio中运行网站,并在btnLogin_Click处设置断点。单击该按钮时,它将中断并允许您单步执行代码。单步执行代码,直到找到抛出异常的行 - 即对象为null。
您要么尝试访问尚未初始化的方法中声明的内容,要么尝试访问尚未初始化的方法之外的对象。
单步执行代码会很快显示出错误。
<强>更新强>
我会检查txtUserName和txtPassword以确保它们具有值。另外,你确定你在ds.Tables [0]中得到了结果吗?如果没有表,在ds.Tables [0]上调用Rows.Count也可能导致该错误。
另外,检查您的Web.config文件 - 确保拼写正确拼写“PhotostudioConnectionString”,包括字母大小写。
您为什么要查看IsValid != null
?我认为if (!IsValid)
会更合适。 IsValid
将true
或false
,永远不会是null
,因此您的代码始终通过该检查。