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



我正试图更新或删除表中的单个特定记录,比如
("UPDATE studentTable set Name='Shekhar'WHERE'Roll Number=116'")
我应该只得到卷号为116的记录,并将其更新为"Shekhar",但我会将所有记录更新为"Sherkhar"。Delete语句也会发生同样的情况,所有记录都会被删除到该特定记录所在的位置。我觉得这是一个语法错误,因为sql语句只读取update或delete语句,而忽略了WHERE子句。我试过把"倒置逗号"放在不同的地方,但后来我发现语法错误,说缺少运算符
表名为"studentTable",卷号为主键数据源名称为student
这是确切的代码。。请告诉我如何根据要求更正代码。

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

最新更新