это бланк формы этот код throw Исключительный набор результатов закрыт ... почему rs не содержит таблицы ?? before i add < < String rsusername = rs.getString ("name"); String rspassword = rs.getString («пароль»); >> всегда печатает worng имя пользователя или парольThrow исключение результирующий набор закрыт
как я могу его решить ???
* PreparedStatement не оказывает никакого влияния на код
код:
final JButton btnNewButton = new JButton("Log in");
btnNewButton.addActionListener(new ActionListener() {
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent arg0) {
String password=passwordField.getPassword().toString();
String UserName = textField_1.getText().toString();
try
{
Class.forName("org.sqlite.JDBC");
Connection con=DriverManager.getConnection("jdbc:sqlite:C:\\Users\\max\\Desktop\\javaproject\\hotel");
String sqlcheck="select * from login where login.Name ='"+UserName+"'and login.password='"+password+"'";
Statement s =con.createStatement();
ResultSet rs=s.executeQuery(sqlcheck);
String rsusername=rs.getString("name");
String rspassword=rs.getString("password");
if(rs.next())
{
btnNewButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
Hotel1 hotel=new Hotel1();
hotel.setVisible(true);
}
});
}
else
JOptionPane.showMessageDialog(null, "worng user name or password");
}
catch(ClassNotFoundException | SQLException e)
{
JOptionPane.showMessageDialog(null, "class not found exception"+e);
}
Чтобы получить первое значение, вам нужно вызвать 'rs.next()'. Я бы предположил, что нет первого значения, поэтому вы получаете сообщение об ошибке. Где вы закрываете ресурсы ResultSet, Statement и Connection? (Если вы этого не сделаете, у вас будет утечка памяти) –
ok , когда я выполняю этот запрос в sqlite .... получить значение –