c#停止null引用
本文关键字:引用 null 停止 | 更新日期: 2023-09-27 18:14:27
在程序的登录序列期间,我在admin表
中检查用户是否存在。如果它们不存在于admin表中,我希望程序停止执行其余的登录序列,并在登录屏幕上更新标签文本,以显示为什么它们不能登录等…
目前标签不随文本更新,这将导致在更改文本之前刷新页面。
我也有其他检查发生在登录期间,可以阻止他们登录。
在这种情况下,确保基于某些检查,每次可以显示不同的标签文本的最佳方法是什么?
谢谢你的帮助
try
{
conn.Open();
string checkAdmin = "Select Username from Admins where Username= '" + Session["Username"] + "'";
SqlCommand adminCheck = new SqlCommand(checkAdmin, conn);
string admin = adminCheck.ExecuteScalar().ToString();
conn.Close();
Session["Admin"] = admin;
}
catch (NullReferenceException)
{
Session.Abandon();
Response.Redirect(Request.RawUrl);
Label3.Text = "blablabla"
}
编辑好的,我现在已经根据你的评论更新到....
try
{
string checkAdmin = "Select Username from Admins where Username= @User";
conn.Open();
SqlCommand adminCheck = new SqlCommand(checkAdmin, conn);
adminCheck.Parameters.AddWithValue("@User", Session["Username"]);
var admin = adminCheck.ExecuteScalar();
conn.Close();
if (admin != null)
{
Session["Admin"] = admin;
}
else
{
Session["Admin"] = null;
}
}
catch (Exception)
{
}
Response.Redirect(Request.RawUrl);
这将立即取消当前代码的执行,并转移到该URL(可能是其他代码)。因此,下面改变标签的语句将不会被执行。
从文档(注释部分):
Redirect调用End,完成后抛出ThreadAbortException异常。