Я проектирую систему ATM в C# и для функции входа в систему Я использую базу данных SQL-сервера для сравнения номера карты и PIN-кода, введенного с теми, которые включены в базу данных , Когда введен правильный номер карты и PIN-код, все работает нормально, но когда неправильное значение, которое оно вводило, ничего не происходит вообще, и я пытаюсь выяснить его в течение некоторого времени. Есть ли у кого-нибудь идеи, что это может быть? Даже мой преподаватель не знает!'else' of if/else не выполняется, если это необходимо C#
//Select all fields from the table 'ATMCards' using the connection previously created and use the SqlDataReader to read the values
Чтобы упростить его, я просто поставил MessageBox.Show в другой, как все, что я хочу сделать, это по крайней мере, это вызовет!
SqlCommand cmd = new SqlCommand("SELECT * FROM [ATMCards] WHERE (cardNumber = @cardNumber) AND (PIN = @PIN)", cn);
cmd.Parameters.AddWithValue("@cardNumber", cboxSimCard.Text);
cmd.Parameters.AddWithValue("@PIN", txtboxPIN.Text);
cmd.Connection = cn;
SqlDataReader r = null;
r = cmd.ExecuteReader();
//While the reader is in execution:
while (r.Read())
{
//ADD IF NOT CONFISCATED DO THIS:
if (((Boolean)(r["confiscated"]) == notConfiscated))
{
string cNum = r["cardNumber"].ToString();
string pin = r["PIN"].ToString();
//Compare the results in the ATMCards table against those on the form used to log in
if (string.Equals(cNum,cboxSimCard.Text) && string.Equals(pin,txtboxPIN.Text))
{
MessageBox.Show("Card number "+cNum+" PIN "+pin);
//If the login details are correct then grant access to the menu screen by creating a new instance of it and hide the login form. Clear PIN to avoid the next user accessing the account
MessageBox.Show("Open form all is good");
txtboxPIN.Clear();
Form myNewForm = new Menu();
myNewForm.Show();
this.Hide();
break;
}
else
{
MessageBox.Show("Here");
}
И вы уверены, что 'r [" конфисковано "]! = NotConfiscated'? –
Вы должны (учитесь) использовать отладчик здесь. –
Надеюсь, что этот банкомат - это учебное задание, а не коммерческий продукт. Например, обычный текстовый PIN-код? – RvdK