使用 java 数据库连接从 MS Access table 删除指定记录

Delete specified record from MS Access table using java database connection

我正在尝试更新或删除 table 中的单个特定记录,比如
("UPDATE studentTable set Name ='Shekhar' WHERE 'Roll Number = 116'");
我应该只获取 roll number 为 116 的记录更新为 Name "Shekhar",但我将所有记录更新为 Name "Shekhar"。 Delete 语句也会发生同样的事情,并且所有记录都将被删除,因为它应该是该特定记录。 我觉得这是一个语法错误,因为 sql 语句只读取更新或删除语句但忽略了 WHERE 子句。我曾尝试将 'inverted comma' 放在不同的位置,但随后出现语法错误,提示缺少运算符..
table 的名称是 "studentTable",卷号是主键 数据源名称是学生。
这是确切的代码。请告诉我如何根据要求更正代码。

import java.util.*;
import java.sql.*;
import java.io.*;

public class StudentDbConnect
{
public static void main(String[] args)
{
    try
    {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection connectDb = DriverManager.getConnection("jdbc:odbc:student");
        Statement view = connectDb.createStatement();
        //view.executeUpdate("INSERT into studentTable values('Tauqeer','116','FET','CSE')");
        //view.executeUpdate("INSERT into studentTable values('Tauqeer2','117','FET','CSE')");
        //view.executeUpdate("INSERT into studentTable values('Tauqeer3','118','FET','CSE')");
        //view.executeUpdate("INSERT into studentTable values('Tauqeer4','119','FET','CSE')");
        //view.executeUpdate("INSERT into studentTable values('Tauqeer5','120','FET','CSE')");
        //view.executeUpdate("UPDATE studentTable set Name ='Shekhar' WHERE 'Roll Number = 116'");
        //view.executeUpdate("DELETE FROM studentTable WHERE 'Roll Number = 116'");
        view.executeQuery("SELECT * FROM studentTable");
        ResultSet result = view.getResultSet();

        while(result.next())
        {
            System.out.println("Name = " +result.getString(1) + " Roll Number = " +result.getInt(2)+" Department = " +result.getString(3)+" Branch = "+result.getString(4));
        }
        view.close();
        connectDb.close();
    }
    catch(Exception raisedException)
    {
        System.out.println("Exception " +raisedException);
    }
}

}

你的 WHERE 子句

... WHERE 'Roll Number = 116'

格式错误。如果 Roll Number 是一个文本列,那么它应该是

... WHERE [Roll Number] = '116'

如果 Roll Number 是一个数字列,那么它应该是

... WHERE [Roll Number] = 116