2017-09-21 5 views
0

3人のユーザーログインを作成する必要があります。それぞれのログインユーザーにログインすると、別のインターフェイスが必要になります。私のアクションボタンのスクリプトは次のとおりです。Java(Netbeans) - ifステートメントで "アクセス拒否"のコードを作成する方法を教えてください。

try { 
       Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
       String url="jdbc:sqlserver://localhost:1433;databaseName=77OOP062;user=sa;password=hnd"; 
       Connection conn= DriverManager.getConnection(url); 
       String sql ="Select Type from Users where Username=? and Password=?"; 
       PreparedStatement pst =conn.prepareStatement(sql); 
       pst.setString(1, jTextFieldUserName.getText()); 
       pst.setString(2, jTextFieldPassword.getText()); 
       ResultSet rs = pst.executeQuery(); 
       rs.next(); 
       String name = rs.getString("Type"); 





      if (name.equals("admin")) { 
      JOptionPane.showMessageDialog(null, "Access Permitted"); 
     ManageUI ah = new ManageUI(); 
     ah.setVisible(true); 
      } 

      if (name.equals("cashier")){ 
     JOptionPane.showMessageDialog(null, "Access Permitted"); 
      CashierUI eh = new CashierUI(); 
      eh.setVisible(true); 
    } 
      else if (name.equals("stockkeeper")){ 
      JOptionPane.showMessageDialog(null, "Access Permitted"); 
     StockKeeperUI aq = new StockKeeperUI(); 
      aq.setVisible(true); 
    } 
      conn.close(); 
     } 
     catch (Exception e){ 
      JOptionPane.showMessageDialog(null, e); 
     } 


This is my Sql server database: User 
----------------------------------------------- 
Username | Type   | Password | 
----------------------------------------------- 
mick  | admin  | 123 | 
----------------------------------------------- 
nisha | cashier  | 456 | 
----------------------------------------------- 
sam  | stockkeeper | 789 | 
----------------------------------------------- 
+0

私のコードは動作していますが、私は、 "アクセス拒否コード" に追加する必要があります。 – Anver

答えて

1

あなたは何があれば、他のチェーンを完了するために、他に含める場合には、第2の次のコード内の他の最後で一致しない場合にどうするかを忘れてしまいました。

try { 
       Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
       String url="jdbc:sqlserver://localhost:1433;databaseName=77OOP062;user=sa;password=hnd"; 
       Connection conn= DriverManager.getConnection(url); 
       String sql ="Select Type from Users where Username=? and Password=?"; 
       PreparedStatement pst =conn.prepareStatement(sql); 
       pst.setString(1, jTextFieldUserName.getText()); 
       pst.setString(2, jTextFieldPassword.getText()); 
       ResultSet rs = pst.executeQuery(); 
    if(rs.next()){ // Row Exists 
       String name = rs.getString("Type"); 

    if (name.equals("admin")) { 
       JOptionPane.showMessageDialog(null, "Access Permitted"); 
      ManageUI ah = new ManageUI(); 
      ah.setVisible(true); 
       } 

       else if (name.equals("cashier")){ 
      JOptionPane.showMessageDialog(null, "Access Permitted"); 
       CashierUI eh = new CashierUI(); 
       eh.setVisible(true); 
     } 
       else if (name.equals("stockkeeper")){ 
       JOptionPane.showMessageDialog(null, "Access Permitted"); 
      StockKeeperUI aq = new StockKeeperUI(); 
       aq.setVisible(true); 
     }else { 
       JOptionPane.showMessageDialog(null, "Access Denied"); 
     } 
    } else{ 
JOptionPane.showMessageDialog(null, "Access Denied"); // Row Doesnot exists 
} 
    conn.close(); 
    } 
    catch (Exception e){ 
     JOptionPane.showMessageDialog(null, e); 
    } 
+0

インスタントメッセージありがとうございました。私はこのメッセージを受け取っていないコードを試しました:com.microsoft.sqlserver.jdbc.SQServerException:結果に現在の行がありません。 – Anver

+0

このようなユーザーがいないときに何をすべきかを処理する必要があります。私のコードチェックが更新されました。 – dev

+0

本当にありがとうございました!!!! – Anver

1

最も簡単答えはelseです。 「デフォルト」のアクセスが拒否された場合は、の場合、elsecashierの場合はifの前に追加し、もう1つの場合はelseを追加します。同様に、

if (name.equals("admin")) { 
    JOptionPane.showMessageDialog(null, "Access Permitted"); 
    ManageUI ah = new ManageUI(); 
    ah.setVisible(true); 
} else if (name.equals("cashier")) { // <-- add an else 
    JOptionPane.showMessageDialog(null, "Access Permitted"); 
    CashierUI eh = new CashierUI(); 
    eh.setVisible(true); 
} else if (name.equals("stockkeeper")) { 
    JOptionPane.showMessageDialog(null, "Access Permitted"); 
    StockKeeperUI aq = new StockKeeperUI(); 
    aq.setVisible(true); 
} else { // <-- another else 
    JOptionPane.showMessageDialog(null, "Access Denied"); 
} 
+0

このインスタントメッセージをありがとうございます。私はこのメッセージを受け取っていないコードを試しました:com.microsoft.sqlserver.jdbc.SQServerException:結果に現在の行がありません。 – Anver

0
else if (name.equals("stockkeeper")){ 
     JOptionPane.showMessageDialog(null, "Access Permitted"); 
    StockKeeperUI aq = new StockKeeperUI(); 
     aq.setVisible(true); 
} else{ 
    JOptionPane.showMessageDialog(null, "Access Denied"); //if there is no matching as Admin, Cashier ,Stockkeeper then else part executed 

}

+0

インスタントメッセージありがとうございました。私はこのメッセージを受け取っていないコードを試しました:com.microsoft.sqlserver.jdbc.SQServerException:結果に現在の行がありません。 – Anver

関連する問題