2016-09-11 4 views
0

私がjtextfieldとcomboboxに入力した値がすでにデータベースに入っているかどうかをチェックする方法は?私はエラーを見つけることができず、私は他の方法を試みましたが、それはうまく動作せず、他のウィンドウも開きません。Java NetBeansとMySQL

private void hyrButtonActionPerformed(java.awt.event.ActionEvent evt) { 

    conn = LidhjaMeDB.LidhDB(); 

    // PER FAQEN HYRESE 
    String Sql = "Select perdorues_emer=?, password=?, kategori=? from punonjes_password "; 

    try { 
     pst = conn.prepareStatement(Sql); 
     String str1 = userJtxt.getText().toString(); 
     String str2 = userJtxt.getText().toString(); 
     String cb1 = (String) kategoriJcb.getSelectedItem(); 
     pst.setString(1, str1); 
     pst.setString(2, str2); 
     pst.setString(3, cb1); 
     rs = pst.executeQuery(); 

     String txt1 = rs.getString("perdorues_emer"); 
     String txt2 = rs.getString("password"); 
     String cb2 = rs.getString("kategori"); 

     while (rs.next()) { 

      if (txt1 == str1 && txt2 == str2) { 

       if (kategoriJcb.getSelectedItem() == "Financa") { 
        Financa f = new Financa(); 
        f.setVisible(true); 
       } else if (kategoriJcb.getSelectedItem() == "Prenotimet") { 
        Rezervime r = new Rezervime(); 
        r.setVisible(true); 
       } else { 
        Fatura fa = new Fatura(); 
        fa.setVisible(true); 
       } 

      } else { 
       JOptionPane.showMessageDialog(null, "Te dhenat nuk egzistojne ne databaze", "error", JOptionPane.ERROR_MESSAGE); 
      } 

     } 

    } catch (Exception e) { 
     JOptionPane.showMessageDialog(null, e); 

    } 
} 
+0

愚かなタイトルのためのDownvote; 'getText()'の結果はすでに 'String'です。とにかくNetbeansはそれと関係がありません。 – EJP

答えて

0

あなたのSQLクエリは、おそらくあなたはあなたが完全に間違った構文ですSelect perdorues_emer=?のようなクエリを記述することはできません

String Sql = "Select perdorues_emer, `password`, kategori from punonjes_password "; 

ようになり、あなたのクエリを意味し、奇妙に見えます。

+0

は、クエリごとにパラメータインデックスが – ard

+0

の範囲外だと言います。パラメータを渡す必要はありません。 – Rahul

+0

ありがとう、私は他の方法も試してみましたが、どうしてそれがうまくいかないのかわかりません。 – ard

0

あなたは私はあなたがこのクエリを意味するものではありませんだと思うあなたのクエリに問題があります。

String Sql = "Select perdorues_emer=?, password=?, kategori=? from punonjes_password "; 

が、この:

String Sql = "SELECT some_attribute FROM punonjes_password WHERE perdorues_emer=?, password=?, kategori=?"; 

String Sql = "SELECT perdorues_emer, password, kategori FROM punonjes_password"; 

かのようにすべてを選択:

String Sql = "SELECT * FROM punonjes_password WHERE perdorues_emer=?, password=?, kategori=?"; 

あなたはあなたの中に別の問題を抱えていますが、結果は次のように外側にないループ内にあるはずです:

String txt1; 
String txt2; 
String cb2; 

while (rs.next()) { 

    txt1 = rs.getString("perdorues_emer"); 
    txt2 = rs.getString("password"); 
    cb2 = rs.getString("kategori"); 

    if (txt1 == str1 && txt2 == str2) { 

     if (kategoriJcb.getSelectedItem() == "Financa") { 
      Financa f = new Financa(); 
      f.setVisible(true); 
     } else if (kategoriJcb.getSelectedItem() == "Prenotimet") { 
      Rezervime r = new Rezervime(); 
      r.setVisible(true); 
     } else { 
      Fatura fa = new Fatura(); 
      fa.setVisible(true); 
     } 
... 
+0

それは私のエラーを与えて、私のSQL構文でエラーがあると言います – ard

+0

何のエラーがありますか? –

+0

私は自分の答えを編集する@Arditaそれを確認することができます –

関連する問題