2012-02-29 3 views
0

Что нужно сделать, это создать банкомат, поэтому, когда пользователь выбирает свой номер учетной записи из поля со списком, в котором хранятся все номера учетных записей из базы данных sql, а затем вводится правильный pin позволяет пользователю получить доступ к форме2. Любые предложения о том, как это сделать. Я думаю, что мне нужна инструкция if, поэтому, когда ввод будет нажат, если вывод будет правильным, перейдите к следующей странице, но если не правильно, у вас есть окно с сообщением, у вас осталось 2 попытки, я просто дона 't нет кода, необходимого для взаимодействия с базой данных, чтобы соответствовать номеру учетной записи с правильным выводом. Код я уже выглядят следующим образом:Код для сопоставления данных, хранящихся в базе данных sql

private void BtnEnter_Click(object sender, EventArgs e) 
    { 
     if (true) 
     { 
      Form2 frm2;       
      frm2 = new Form2();   
      frm2.ShowDialog(); 
     } 
     else 
     { 
      MessageBox.Show("You have two attempts remaining"); 
     } 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     sqlDataAdapter1.Fill(dataSet11.ATMCards); 
    }  

ответ

1

вам следует использовать этот запрос, если вы используете ComboBox и текстовое поле

string Sqlcommand="Select PinNumber from [Your Table Name] 
    where 
    AccountNumber='"+Combobox.SelectedItem+"' ; 


    SqlConnection con = new SqlConnection(ConnectionString); 
     string Sqlcommand="Select PinNumber from [Your Table Name] 
     where 
     AccountNumber='"+Combobox.SelectedItem+"' ;    
     SqlCommand cmd = new SqlCommand(Sqlcommand, con); 
     con.Open(); 
     Object pinnumber = cmd.ExecuteScalar(); 
     con.Close();    
     if (pinnumber != null) 
     { 
      LblError.Visible = false; 
      LblError.Text = ""; 
      if (pinnumber .ToString() == TextBox1.Text) 
      { 
       Response.Redirect(""); 
      } 
      else if (TypeUser.ToString() == "HR") 
      { 
       MessageBox.Show("You have two attempts remaining"); 
      } 
     } 

Надежда это работает для u..if и есть любые сомнения спрашивают меня ...

+0

Ive использовал мастер для настройки соединения и набора данных, поэтому мне нужен весь этот код? или это для создания соединения? есть способ использовать целое число, чтобы удерживать текущий выбранный номер учетной записи, а затем использовать мой набор данных для поиска строки, которая содержит номер этой учетной записи и номер буфера, например, что-то вроде dataatetATM1.Tables («ACCOUNTS»). Строки (Index) .item («ПИН»)? (Индекс - это переменная, содержащая текущий выбранный номер учетной записи в поле со списком). Спасибо за помощь – parker4001

0

Похоже, домашнее задание для меня, но вам нужен объект соединения со строкой соединения и адаптер конструктора SQL с вашим SQL в нем, прежде чем вы можете вызвать команду Fill для заполнения ваш набор данных.

Затем вам нужно взять номер штыря, который они ввели, либо найти его в своем наборе данных, либо выполнить инструкцию SQL в этой точке, а не в событии Form_Load. Вам понадобится переменная numberOfAttempts, которая должна увеличиваться при каждом сбое и сбросить до 0, если вывод правильный. Затем ваш оператор if должен проверить эту переменную.

Ваш SQL нужно будет что-то вроде:

SELECT * FROM ACCOUNTTABLE 
WHERE 
ACCOUNT = SELECTEDACCOUNTNUMBER 
AND 
PINNUMBER = ENTEREDPINNUMBER 
Смежные вопросы