Ошибка "Столбец не найден"? - PullRequest
0 голосов
/ 03 января 2011

Мне нужна помощь с ошибкой ниже. Ниже приведен метод retrievePassword (). Я запрограммировал его так, чтобы при вызове Clickid я мог получить и все остальные данные.

public boolean retrievePassword() {
  // declare local variables
  boolean success = false;
  ResultSet rs = null;
  DBController db = new DBController();

  // step 1 of using DBController, passing data source name setup during last practical
  db.setUp("myDatabase");

  // declare the SQL 
  String dbQuery = "SELECT Clickid FROM PROFILE WHERE Clickid = '" + clickId + "'" ;


  // step 2 of using DBCcontroller, for retrieve SQL use readRequest method
  rs = db.readRequest(dbQuery);
  try{
     if (rs.next()){
   firstName = rs.getString("Firstname");
   lastName = rs.getString("LastName");
          password = rs.getString("Password");
          email = rs.getString("Email");

          success = true;     
     }
  }
  catch (Exception e) {
     e.printStackTrace();
  }
  db.terminate();
  return success;
 }

Я проверил, и все имена столбцов верны. Я думаю, что проблема заключается либо в вышеуказанном методе, либо в экземпляре ниже

 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 (). Я уверен, что проблема заключается в любом из этих двух методов, но я не могу решить его, как бы я это ни делал. Поможет ли мне какая-нибудь добрая душа? Пожалуйста?

Ответы [ 4 ]

5 голосов
/ 03 января 2011

Похоже, что ваш запрос только выбирает поле ClickId, но затем в результате вы пытаетесь получить другие поля. Вместо этого используйте SELECT * или SELECT с нужными полями.

1 голос
/ 03 января 2011

Вы выбираете только столбец clickid. пытаться выбрать * из профиля или лучше использовать список столбцов.

1 голос
/ 03 января 2011

Это верно, вам нужно получить FirstName, LastName, Email и Password в вашем запросе выбора, если вы собираетесь использовать их из набора результатов.

0 голосов
/ 04 января 2011

Привет всем, я сделал то, что вы все сказали, и выбрал все столбцы, и это был успех. Но когда я реализую метод ниже

 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);

Он продолжает показывать jOptionPane из цикла else. На самом деле мне нужно получить цикл if, когда я наберу в правильном поле = (. Спасибо за вашу помощь =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...