2013-11-28 49 views
0

我想连接我的jtextbox中的每个表字段,但是当我运行此代码时,它说的是语法错误。我使用SQLite和NetBeans我希望你能帮助我将表格连接到jtextbox

try{ 

     String sql="Select * From account where id=txtId.getText() AND fname=txtFname.getText() AND lname=txtLname.getText() AND username=txtUsername.getText() AND password=txtPassword.getText()"; 

     pst=conn.prepareStatement(sql); 
     pst.setString(1, txtId.getText()); 
     pst.setString(2, txtFname.getText()); 
     pst.setString(3, txtLname.getText()); 
     pst.setString(4, txtUsername.getText()); 
     pst.setString(5, txtPassword.getText()); 

     pst.execute(); 
     rs.close(); 
     pst.close(); 

    } 
    catch(SQLException e){ 
     JOptionPane.showMessageDialog(null,e); 
    } 
    finally{ 
     try{ 
      rs.close(); 
      pst.close(); 

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

}           
+0

不,我们不能。我们不知道你的问题是什么。 –

+0

@LittleChild我的问题是我想查看我的数据库中的所有数据,并且数据将显示在jtextfield中 –

+0

JTextField将会非常小。考虑使用JTextArea –

回答

1

尝试把占位符(?)在查询..

String sql="Select * From account where id=? AND fname=? AND lname=? AND username=? AND password=?"; 

您所提供的值,但没有占位符在查询:
pst.setString(1, txtId.getText());

EDIT1:回复您的评论

try{ 
    String sql="Select * From account where id=? AND fname=? AND lname=? AND username=? AND password=?"; 
    pst=conn.prepareStatement(sql); 
    pst.setString(1, txtId.getText()); 
    pst.setString(2, txtFname.getText()); 
    pst.setString(3, txtLname.getText()); 
    pst.setString(4, txtUsername.getText()); 
    pst.setString(5, txtPassword.getText()); 

    rs=pst.execute(); //to get resultset 
    while(rs.next()) 
    { 
     //Do what you want to do if the records are found 
     System.out.println(rs.getString(1)); 
     System.out.println(rs.getString(2)); 
    } 
} 
catch(SQLException e){ 
    JOptionPane.showMessageDialog(null,e); 
} 
finally{ 
    try{ 
     if(rs!=null)rs.close(); 
     if(pst!=null)pst.close(); 
    } 
    catch(SQLException e){ 
     JOptionPane.showMessageDialog(null,e); 
    } 
}   
+0

你能修改我的代码是否更清晰? –

+0

@LawrenceAgulto请参阅编辑 – Bhushan

+0

我会把这个放在什么地方?我会做另一个班,否则我会把这个放到我的主要班上? –

0

您正在字符串文字内进行方法调用。最简单的方法是将您的方法调用移出您的字符串并获取变量中的返回值。然后你可以将这些附加到你的查询字符串中。

正确的方法是使用PreparedStatement。它是为这种情况而设计的。教程:http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html

更新:
由于您正在使用PreparedStatement,请将查询中的所有未知值替换为? 。然后您可以稍后使用适当的设置器设置它们。