Я сделал свое кодирование в консоли и использовал system.console. напишите строку почти в каждом операторе if / else, чтобы отобразить сообщение об ошибке, если введены неправильные значения, чтобы сказать, если что идет не так. Однако, когда я пытаюсь применить ту же аналогию в веб-формах, чтобы в случае выполнения условия при пользовательской ошибке пользователю на экране могло отображаться сообщение об ошибке.
Как мне отображать ошибки? Я знаю о проверке элементов, но не могу применить это, используя if и else. однако, если я использую try catch, я не знаю, какой код отображает сообщение об ошибке для пользователя. но я точно знаю, что не могу использовать SC.writelines.
образец моего кода ниже. Пожалуйста, совет ..
защищенный void Login1_Authenticate (отправитель объекта, AuthenticateEventArgs e)
{
строка strConn;
строка userType;
strConn = "Provider=MIcrosoft.Jet.OLEDB.4.0;data Source=" +
Server.MapPath("App_Data/test.mdb");
OleDbConnection mDB = new OleDbConnection(strConn);
mDB.Open();
userClass aUser = new userClass();
if (aUser.verifyUser(mDB, Login1.UserName, Login1.Password))
{
userType = aUser.getUserDesc();
if (userType.ToLower() == "customer")
{
Response.Redirect("StaffMenu.aspx");
}
else if (userType.ToLower() == "front desk")
{
Response.Redirect("StaffMenu.aspx");
}
else if (userType.ToLower() == "technician")
{
Response.Redirect("StaffMenu.aspx");
}
else if (userType.ToLower() == "admin")
{
Response.Redirect("StaffMenu.aspx");
}
}
else
{
e.Authenticated = false;
}
mDB.Close();
когда программа переходит в класс User для запуска метода verify, она делает это, выполняя следующий кусок кода ..
public bool verifyUser (mDB OleDbConnection, строка userIDStr, строка userPwrdStr)
{
строка sqlQuery;
OleDbCommand cmd;
OleDbDataReader rdr;
//SC.Write("\n*******User Login********\nEnter User ID:");
//userIDStr = userIDInt.ToString();
//SC.Write("\nEnter User Password:");
//userPwrdStr = userPwrdStr;
sqlQuery = "SELECT UserID, UserPassword, UserDescription FROM UserTable WHERE UserID = " +
toSql(userIDStr);
cmd = new OleDbCommand(sqlQuery,mDB);
//Boolean valid = false;
//Boolean HasRows = false;
try
{
rdr = cmd.ExecuteReader();
if (rdr.HasRows)
{
while (rdr.Read())
if (userIDStr == (string)rdr["UserID"])
{
if (userPwrdStr == (string)rdr["UserPassword"])
{
userDescStr = (string)rdr["UserDescription"];
if (userDescStr.ToLower() == "admin")
{
//SC.WriteLine("Welcome to Admin Main Menu");
return true;
}
else if (userDescStr.ToLower() == "front desk")
{
//SC.WriteLine("Welcome to Front Desk Staff Main Menu");
return true;
}
else if (userDescStr.ToLower() == "technician")
{
//SC.WriteLine("Welcome to Technical Staff Main menu");
return true;
}
else if (userDescStr.ToLower() == "customer")
{
//SC.WriteLine("Sorry, Customers are not allowed access to the Administrative page");
return true;
}
}
else
{
//SC.WriteLine("\nInvalid User Password, Please try again");
//verifyUser(mDB);
}
}
else
{
//SC.WriteLine("Invalid User ID, Please try again");
//verifyUser(mDB);
}
//HasRows = true;
}
rdr.Close();
}
catch (Exception ex)
{
SC.WriteLine(ex.Message);
}
return false;
}//=================================end verify User()
Как бы то ни было, если введено неправильное имя пользователя или пароль, как я могу отобразить пользователю сообщение об ошибке относительно того, какой из элементов управления получает неправильное значение ...
надеюсь использовать этот код для замены моего SC.writelines, который отображает сообщения пользователю ....