1

我正在开发一个数据库项目,该项目涉及向具有字段的学生表添加、编辑和删除注册表:

Last_names、Names、IcNumber、Average、Entry_mode、Career 和 Change

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

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”条件并且效果很好,有人知道那个错误吗?

4

3 回答 3

2

您应该使用子查询,首先是带有 WHERE 的 SELECT 部分,然后是 INSERT 部分,例如:

  if (cond){
             (SELECT.....)
                (INSERT INTO...)}
于 2012-10-16T04:39:15.047 回答
0

你为什么whereinsert声明中使用?Where子句适用于select,updatedelete语句但不适用于insert. 此外,我认为您的查询中不需要该where子句。

只需使用insert不带where子句的语句。

于 2012-10-16T04:38:52.333 回答
0

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

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

于 2012-10-16T04:39:56.820 回答