2017-12-31 44 views
0

私はプロジェクトページを行いたいと思います。私のGraphiqueインターフェースはOKです。しかし、私のデータベースを接続し、このコードを書いて自分のコードとパスワードが自分のデータベースに存在するかどうかを確認した後、データベースにコードが存在していても私は常にmy(else)のメッセージを受け取ります。テキストフィールドとパスワードのコードがNetbeansのデータベースに存在することを確認する方法

private void ok1ActionPerformed(java.awt.event.ActionEvent evt) {          
    try { 
     conn=Test.ConnectDB(); 
     String Sql="select * from login WHERE 'code' =?and 'motdepasse' =?"; 
     ps=conn.prepareStatement(Sql); 
     ps.setString(2,code1.getText()); 
     ps.setString(1,passe1.getText()); 
     ResultSet rs=ps.executeQuery(); 
     if(rs.next()){ 
      con_ret s=new con_ret(); 
      s.setVisible(true); 
      JOptionPane.showMessageDialog(null,"welcome"); 
     } else { 
      JOptionPane.showMessageDialog(null,"invalid user or password"); 
     } 
    } catch (SQLException ex) { 
     /*Logger.getLogger(login.class.getName()).log(Level.SEVERE, null, ex);*/ 
     JOptionPane.showMessageDialog(null,ex); 
    } 
} 
+1

'code1'は' 1'と 'passe1'はパラメータ' 2'に属していませんか? – MadProgrammer

+0

ohh thakあなたが私のデータベースで注文したものだと思ったが、私がそれを変更したときに動作する –

+0

いいえ、それはクエリに表示される順番である – MadProgrammer

答えて

0

私はつまり、それは列名をUNQUOTEする方が良いと思う:

select * from login WHERE code =? and motdepasse =? 

引用文字列リテラルを意味しています。好奇心が強い場合は、codemotdepasseをコードとパスワードとして渡して一致するかどうか試してみてください。

編集:

また、私はあなたのパラメータインデックスが混乱していることに気づきます。

ps.setString(1,code1.getText()); 
ps.setString(2,passe1.getText()); 
+0

私は引用符を削除しますが、私はまだ同じ問題があります –

+1

あなたは引用することができますが、正しい引用符を使用してください。単一のアポストロフィではなく、バックティック – Christian

関連する問題