【发布时间】:2012-06-29 13:37:05
【问题描述】:
我目前正在用 Java 编写一个应用程序,该应用程序执行 Swing GUI 组件的输入/输出,并从本地 Microsoft Access 2007 数据库存储/检索这些数据。一切都很顺利,除非我尝试使用来自要存储在文本或备注字段中的 JTextArea 的输入来更新记录。我可以很好地接收来自 JTextField 的输入,但我得到一个“SQLException:UPDATE 语句中的语法错误”。使用 JTextArea。
这是有问题的代码:
/* <in_some_method> */
myJTextArea.setText(someString); // the components can have the exact
myJTextField.setText(someString); // same string and still have problems
saveEdit(myTable, myColumn, myJTextField.getText(), myID); // this works fine
saveEdit(myTable, myColumn, myJTextArea.getText(), myID); // this throws an exception
/* </in_some_method> */
/* the update method */
public void saveEdit(String table, String column, String value, long id) {
String query = "UPDATE " + table + " ";
query += "SET " + column + " = '" + value + "', "
query += "UpdatedAt = Now() ";
query += "WHERE ID = " + id;
try {
// conn is a working connection to the database
Statement s = conn.createStatement();
// execute the query
s.executeUpdate(query);
// close open database handle
s.close();
} catch (Exception ex) {
System.err.println(ex);
}
}
几件事:
我认为与数据库中字段的数据类型不存在;我已经尝试过 Memo 和 Text 的类型,两者都可以使用 JTextField,但都不能使用 JTextArea。
如前所述,异常是“SQLException:UPDATE 语句中的语法错误”。所以我知道我的问题与数据库表的布局无关;请求的表和列存在并且可以访问。
有人有什么想法吗?任何帮助将不胜感激。
【问题讨论】:
-
myJTextArea.getText() 的值是多少?
标签: java sql database swing jtextarea