2013-11-28 47 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,請將查詢中的所有未知值替換爲? 。然後您可以稍後使用適當的設置器設置它們。