用Java编写访问数据库?

时间:2012-10-16 04:30:21

标签: java sql ms-access-2007 ms-access-2010

我正在开发一个关于添加,编辑和删除注册表的数据库项目到Students表,其中包含以下字段:

Last_names,Names,IcNumber,Average,Entry_mode,Career and Change

在编辑框架中,我有一个字段,用户键入要编辑其数据的学生的icnumber,请求新数据并将其保存到“Students”数据结构,然后使用新数据重新更新注册表:

String stmnt = "Insert Into Students (Last_names, Names, IcNumber, Average, " + 
        "Entry_mode, Career, Change) Values ('" + student.getLastNames() + 
        "', '" + student.getNames() + "', '" + student.getIcNumber() + "', " +
        student.getAverage() + ", '" + student.getEntry() + "', '" +
        student.getCareer() + "', '" + student.getChange() + "') " +
        "Where IcNumber = '" + field.getText() + "'";

statement.execute(stmnt);

我收到此错误消息:

[Microsoft] [Microsoft Access ODBC Driver]“查询输入必须至少包含一个表或查询。”

我在我的程序的添加注册表区域中尝试了类似的SQL指令而没有“Where”条件并且运行良好,任何人都知道该错误?

3 个答案:

答案 0 :(得分:2)

您应该使用子查询,首先使用WHERE的SELECT部分​​,然后使用INSERT部分 类似的东西:

  if (cond){
             (SELECT.....)
                (INSERT INTO...)}

答案 1 :(得分:1)

为什么在where声明中使用insertWhere子句适用于selectupdatedelete语句,但不适用于insert。此外,我认为您的查询中不需要where子句。

只需使用insert语句而不使用where子句。

答案 2 :(得分:1)

使用INSERT语句添加新记录。 WHERE子句不属于INSERT语句。

如果您正在编辑现有记录,那么您应该使用UPDATE语句,WHERE子句可以识别要更改的记录。