2011-01-03 6 views
0

私は以下のエラーで助けが必要です。以下は、retrievePassword()メソッドです。 Clickidが呼び出されたときに他のすべてのデータも取得できるようにプログラムしました。「列が見つかりません」というエラー?

すべての列名が正しいことを確認しました。私はこの問題は、上記の方法や、私がコンパイルされ、それぞれのフィールドに入力された

String first = jTextFieldFirst.getText(); 
String email = jTextFieldEmail.getText(); 
Profile p2 = new Profile(jTextFieldId.getText()); 
p2.retrievePassword(); 
String firstName = p2.getFirstName(); 
String email2 = p2.getEmail(); 
if(email == email2 && first == firstName) 
JOptionPane.showMessageDialog(null, "Your Password is "+p2.getPassword(), 
     "Retrieve Password",JOptionPane.INFORMATION_MESSAGE); 
else 
JOptionPane.showMessageDialog(null, "Some information you entered is incorrect", "Retrieve Password",JOptionPane.INFORMATION_MESSAGE); 

以下のインスタンスのいずれかであると考え、エラー「列が見つからない」登場続けます。私は列名とデータが正しいことを確認しましたが、私はretrievePassword()メソッドに含まれていない列がさらにあります。私はそれが問題であるように思われるこの2つの方法のどちらかであると確信していますが、私がそれをやっても問題は解決しないようです。何か魂が私を助けますか?お願いします?

+2

"パスワードを取り出す"という機能はありません。最初にパスワードを保存したことはありません。パスワードの不可逆ハッシュを格納する必要があります。 –

+0

その部分に関しては、私はまだデータベース以外のものでは本当に良くありません。だから私は今度は最も原始的な方法を使いました。 –

答えて

1

clickid列のみを選択します。 try select * from profile 以上の列リストを使用してください。

1

結果セットから使用する場合は、選択したクエリでFirstName、LastName、Email、およびPasswordを取得する必要があります。

5

あなたのクエリはClickIdフィールドのみを選択しますが、結果では他のフィールドを取得しようとしているようです。代わりに必要なフィールドにSELECT *またはSELECTを使用してください。

+0

'select *'はありません。誰かがテーブルの構造を少し変更することを決めると、これは非常にエラーが発生しやすくなります。すべての地獄は緩んで壊れます。必要なものだけを選択してください。それ以上のものはありません。 – darioo

+0

ええ、あなたが必要なものだけを選ぶほうがいいです。すべてを選択する方法がわからない場合に備えて言いました。 –

+0

@darioo:カラム名を変更しないと明示的なselect句も失敗する場合があるので、 "すべての地獄が緩んでしまう"ことはわかりません。あなたは結果セットを扱うときに後で実行するのではなく、実行が失敗する方が良いと思っていますか?あるいは、誤ってOP /誰かが列インデックスを使ってRSとやり取りしていると思っていますか? –

0

皆さん、皆さんがお伝えしたことをすべて実行して、すべての列を選択し、成功しました。しかし、以下のメソッドを実装するとき

String first = jTextFieldFirst.getText(); 
String email = jTextFieldEmail.getText(); 
Profile p2 = new Profile(jTextFieldId.getText()); 
p2.retrievePassword(); 
String firstName = p2.getFirstName(); 
String email2 = p2.getEmail(); 

if(email == email2 && first == firstName) 
JOptionPane.showMessageDialog(null, "Your Password is "+p2.getPassword(), 
     "Retrieve Password",JOptionPane.INFORMATION_MESSAGE); 
else 
JOptionPane.showMessageDialog(null, "Some information you entered is incorrect", "Retrieve Password",JOptionPane.INFORMATION_MESSAGE); 

これは、elseループからjOptionPaneを引き続き表示します。私が必要とするのは実際に正しいフィールドに入力したときにifループを出すことです=(。ありがとうございました)===

関連する問題