简体   繁体   English

使用JTextField更新MS Access DB中的数据

[英]Updating data in MS Access DB using JTextField

I'm trying to use JTextField to update content of my DB, I have a frame where is all information about specific record, then I input correct or changed data to all JTextFields, and then I try to execute UPDATE statement with preparedStatement, but it doesn't seem to work. 我正在尝试使用JTextField更新我的数据库的内容,我有一个框架,其中有关于特定记录的所有信息,然后我输入正确或更改的数据到所有JTextFields,然后我尝试用preparedStatement执行UPDATE语句,但它似乎不起作用。 I'm trying this way: 我正在尝试这种方式:

.....
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String Base = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=DATABASE.mdb";
Connection con = DriverManager.getConnection(Base,"","");
PreparedStatement pst = con.prepareStatement("update table_name SET table_item1='?', table_item2='?', table_item3='?', table_item4='?', table_item5=?, table_item6=?, table_item7=? WHERE table_item8=?");
pst.setString(1, tf1.getText());
pst.setString(2, tf2.getText());
pst.setString(3, tf3.getText());
pst.setString(4, tf4.getText());
pst.setString(5, tf5.getText());
pst.setString(6, tf6.getText());
pst.setString(7, tf7.getText());
pst.setString(8, comboItem.getSelectedItem());
int res= pst.excecuteUpdate();
pst.close();
con.close();
......

In the query I use ' ' because it is a String component, I get error at pst.setString(5, tf5.getText()); 在查询中我使用''因为它是一个String组件,我在pst.setString(5,tf5.getText())得到错误; maybe because it's Integer values starts there, thats just a hunch. 也许是因为它的整数值从那里开始,这只是一种预感。

No need to use single quotes (') in prepared statement for string fields and correct 'update' query : 无需在预准备语句中对字符串字段使用单引号(')并更正'update'查询:

PreparedStatement pst = con.prepareStatement("update table table_name SET table_item1='?'

remove '' from all '?' 从'all'中删除''' like this for all string fields : 对于所有字符串字段都这样:

PreparedStatement pst = con.prepareStatement("update table table_name SET table_item1=?, 

So correct query becomes : 所以正确的查询变为:

PreparedStatement pst = con.prepareStatement("update table table_name SET table_item1=?, table_item2=?, table_item3=?, table_item4=?, table_item5=?, table_item6=?, table_item7=? WHERE table_item8=?");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM