2017-02-13 19 views
0

Привет всем, мне сказал друг, что если я буду бороться, я должен пойти на этот сайт для некоторых рекомендаций. Я обычный программист, и я просто делаю это, чтобы обогатить свой разум. У меня есть проблема в момент, когда я хочу, чтобы моя программа имела экран входа в систему и использовала мою базу данных sqlite для проверки имени пользователя, пароля и раздела (администратора, администратора, пользователя), прежде чем вы сможете войти в главное меню программы. Теперь я использую Netbeans для выполнения моего java-программирования, поскольку он упрощает для меня работу, и до сих пор он работает для первого деления пароля и администратора, но как только я добавляю кого-то, как можно сказать, администратор или пользователь ничего не происходит, и у меня есть попробовал все, что я мог прочитать в Интернете, поскольку я сказал, что я учился на дому, когда дело доходит до программирования, поскольку это просто хобби и мой интерес, любой совет или указатель на веб-сайт, где я могу научить себя, как исправить моя проблема поможет me.Here мой текущий код, я надеюсь, что я правильно отправляю это: `частная пустота jButton1ActionPerformed (java.awt.event.ActionEvent ЭВТ) {
// TODO добавить код обработки:Проверка входа в систему из sqlite не работает правильно

String sql ="select Id,Username,Password,Division from Users where (username =? and password= ? and division=?)"; 

    try{ 
     int count = 0; 
     pst = conn.prepareStatement(sql); 

     pst.setString(1, txt_username.getText()); 
     pst.setString(2, txt_password.getText()); 
     pst.setString(3, txt_combo.getSelectedItem().toString()); 

     rs = pst.executeQuery(); 
     while (rs.next()){ 
      int Username =rs.getInt(1); 
      Emp.empnum = Username; 
      String username = rs.getString("username"); 
      Emp.empname = username; 
      count = count+1; 
     } 

     String access = (txt_combo.getSelectedItem().toString()); 

     if(access =="Administrator,Admin,User"){ 
      if(count == 1){ 
       JOptionPane.showMessageDialog(null, "Success"); 
       MainMenu j = new MainMenu(); 
       j.setVisible(true); 
       this.dispose(); 
      }else { 
       JOptionPane.showMessageDialog(null, "The Username or Password you entered was incorrect!"); 
      } 
     } 

    }catch (Exception e){ 

    JOptionPane.showMessageDialog(null, e); 

    } 
    finally { 

     try{ 
      rs.close(); 
      pst.close(); 

     }catch (Exception e){ 
    } 
    } 
}` 
+0

Спасибо, я понял это, я получил это право, просто используя логическое значение с истинным и ложным признаком. –

ответ

0

IU нашел функцию Boolean здесь ho w мой код работал отлично после его использования, если кто-нибудь может видеть, в любом случае, я могу улучшить его, если это поможет, но он работает на 100%. 'String sql = "select Id, Username, Password, Division from Users, где (имя пользователя =? И пароль =? И деление =?)";

try{ 

     int count = 0; 
     boolean foundUser = false; 
     pst = conn.prepareStatement(sql); 



     pst.setString(1, txt_username.getText()); 
     pst.setString(2, txt_password.getText()); 
     pst.setString(3, txt_combo.getSelectedItem().toString()); 


     rs = pst.executeQuery(); 
     while (rs.next()){ 
      int Username =rs.getInt(1); 
      Emp.empnum = Username; 
      String username = rs.getString("username"); 
      Emp.empname = username; 
      foundUser = true; 
      count = count+1; 

     } 

    String access = (txt_combo.getSelectedItem().toString());  
    if (foundUser) { 
     JOptionPane.showMessageDialog(null, "Success"); 
       MainMenu j = new MainMenu(); 
       j.setVisible(true); 
       this.dispose(); 

      }else { 
       JOptionPane.showMessageDialog(null, "The Username or Password you entered was incorrect!"); 
      } 


    }catch (Exception e){ 

     JOptionPane.showMessageDialog(null, e); 

    } 
    finally { 

     try{ 
      rs.close(); 
      pst.close(); 

     }catch (Exception e){ 
    } 
    }'