这里我创建了一个名为sub_master的表,其中包含列sub_id和名称,插入和删除工作完全正常,所以将这些函数放在这里以获取更新函数的参考 我正在使用PostgreSQL。 在命令行UPDATE查询工作正常,查询为: 更新school_submaster SET name =''WHERE sub_id =;
private void InsertRowActionPerformed(java.awt.event.ActionEvent evt)
{
String query = "INSERT INTO school_submaster (sub_id, \"name\") VALUES ("+SidInput.getText()+",'"+SnameInput.getText()+"')";
executeSQlQuery(query, "Inserted");
}
private void UpdateRowActionPerformed(java.awt.event.ActionEvent evt)
{
String query = "UPDATE school_submaster SET 'name' ='"+SnameInput.getText()+"'+WHERE sub_id = "+SidInput.getText();
executeSQlQuery(query, "Updated");
}
private void DeleteRowActionPerformed(java.awt.event.ActionEvent evt)
{
String query = "DELETE FROM school_submaster WHERE sub_id = "+SidInput.getText();
executeSQlQuery(query, "Deleted");
}
答案 0 :(得分:2)
仅对字符串和日期常量使用单引号。 从不在列名或表名周围使用单引号。
您的String phone = cursor.getString(0);
phone = phone.replaceAll("+33", "");
editText.setText(phone);
是:
update
在查询字符串中还有UPDATE school_submaster
SET 'name' ='<something>'+WHERE sub_id = "+SidInput.getText();
的附加问题。它应该看起来像:
+
但即便如此也是如此。您需要学习使用参数将参数传递给查询。查询应该是以下的一些变体:
UPDATE school_submaster
SET name = '<something>'
WHERE sub_id = "+SidInput.getText();
UPDATE school_submaster
SET name = ?
WHERE sub_id = ?
是参数的占位符(也可能是?
或其他内容)。
答案 1 :(得分:0)
您在sql WHERE
子句中缺少空格,因此请按如下所示添加:
String query = "UPDATE school_submaster SET 'name' ='"+
SnameInput.getText()+"' WHERE sub_id = "+SidInput.getText();