2017-09-26 101 views
1

如何删除一个MySQL数据库中选择记录(行) 我使用此代码如何删除在java中选定的记录(行)MySQL数据库

connectDB(); 
try{ 
    java.sql.PreparedStatement stmt = con.prepareStatement("DELETE FROM tbl_codes WHERE No=? "); 
    String sql = "Delete FROM user WHERE No= "+txt_search_code.getText(); 
    pstmt = con.prepareStatement(sql); 
    pstmt.setString(1,txt_search_code.getText()); 
    pstmt.execute(); 
    JOptionPane.showMessageDialog(null, " Your new records Deleted Succsessfully!!"); 
} catch(Exception e){ 
    JOptionPane.showMessageDialog(null,e); 
} 
closeDB(); 

,但它获得类似这样的错误 -

java.sql.SQLException中:参数索引超出范围(1> 参数号,它是0)

那么,如何可以解决此problea米....(示例,请) 感谢

+1

删除你的String sql。你已经有了stmt。使用它来执行查询,而不是pstmt –

+0

我试过这段代码[string sql =“Delete FROM user WHERE No ='”+ txt_search_code.getText()+“'”; ] 但它仍然获得类似这样的错误 - “值java.sql.SQLException:参数指标超出范围(1>参数的数量,这是0)” 那么怎样才能解决这个probleam ... (请举例) 谢谢 – sumith

回答

2

试试这个:

connectDB(); 
try{ 
    java.sql.PreparedStatement stmt = con.prepareStatement("DELETE FROM tbl_codes WHERE No=? "); 
    stmt.setString(1,txt_search_code.getText()); 
    stmt.execute(); 
    JOptionPane.showMessageDialog(null, " Your new records Deleted Succsessfully!!"); 
} catch(Exception e){ 
    JOptionPane.showMessageDialog(null,e); 
} 
closeDB(); 
+0

非常感谢你的工作, – sumith

1

问题是你不能使用你要删除的引号字符串。

它应该是以下几点:

string sql = "Delete FROM user WHERE No= '" + txt_search_code.getText()+ "'"; 

SQL是现在特林转换为NUMERICS。

+0

请用PreparedStatement ... –

+0

不好意思,那肯定是更好的! –