【问题标题】:Count field incorrect error while connecting eclipse to ODBC driver将 Eclipse 连接到 ODBC 驱动程序时计数字段不正确
【发布时间】:2012-12-12 06:31:16
【问题描述】:

我在尝试使用 microsoft access 和 eclipse 在数据库中创建记录时遇到此错误。

    [Microsoft][ODBC Microsoft Access Driver]COUNT field incorrect

并且显示的连接已关闭。这是我连接到 ODBC 驱动程序的代码。

    public class DBController {
private Connection con;

public void setUp(String dsn) {
    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");          
    } catch (Exception e) {
        System.out.println("Load driver error");
    }
    try {

        String s = "jdbc:odbc:" + dsn;
        con = DriverManager.getConnection(s, "", "");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public ResultSet readRequest(String dbQuery) {
    ResultSet rs = null;
    try {
        Statement stmt = con.createStatement();
        rs = stmt.executeQuery(dbQuery);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return rs;
}

public int updateRequest(String dbQuery) {
    int count = 0;
    try {
        Statement stmt = con.createStatement();
        count = stmt.executeUpdate(dbQuery);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return count;
}

public void terminate() {
    try {
        con.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

这些是我创建用户的代码。

        public boolean createUser() {
    boolean success = false;
    DBController db = new DBController();
    db.setUp("IT Innovation Project");
    String sql = "INSERT INTO forumUsers(users_userName,users_password,users_NRIC,users_securityQuestion,users_answer) ";
    sql += "VALUES ('" + userName + "','" + pwd + "','" + nric + "','"
            + securityQuestion + "','" + answer + "')";
    System.out.println(sql);
    if (db.updateRequest(sql) == 1)
        success = true;
    db.terminate();
    return success;
}

我已经按照数据库表列重新排列了序列,但它仍然显示计数字段不正确的错误。那么我该如何解决呢?任何帮助将不胜感激。 这是我的挥杆。

    public void submitSignup(ActionEvent e) {
    String userName = jTextField_userName.getText();
    String pwd = new String(jPasswordField.getPassword());
    String nric = jTextField_nric.getText();
    String securityQuestion = jComboBox_securityQuestion.getSelectedItem()
            .toString();
    String answer = jTextField_answer.getText();

    if (userName.equals("") || pwd.equals("") || nric.equals("")
            || securityQuestion.equals("") || answer.equals(""))
        JOptionPane.showMessageDialog(null, "Please enter all text field");
    else {
        eForumUser user = new eForumUser(userName, pwd, nric,
                securityQuestion, answer);
        if (user.isExist())
            JOptionPane.showMessageDialog(null,
                    "User already exists! Cannot create.");
        else {
            if (user.createUser() == true)
                ;
            JOptionPane.showMessageDialog(null,
                    "User record created successfull!");
        }
    }
}

【问题讨论】:

  • 我已经编辑过了。是不是我的顺序错了?
  • “我的顺序错了吗?” 如果“顺序”是指添加标签、发布问题、然后添加适合标签的代码的顺序, 好的。一次性完成。否则我不知道那句话是什么意思。
  • 嗯我的意思是我应该根据我的数据库列的顺序使用Insert语句吗?
  • 我不知道。我知道 Swing,而不是 D/B。
  • 有人能解释一下 COUNT 字段不正确是什么意思吗?

标签: java eclipse swing ms-access


【解决方案1】:

我认为应该是:

  String sql = "INSERT INTO forumUsers(users_userName,users_password,users_NRIC,users_securityQuestion,users_answer) " +
         "VALUES (?,?,?,?,?)";
            System.out.println(sql);
            PreparedStatement ps = con.prepareStatement(sql);
            ps.setString(1,users_userName);
            ps.setString(2,users_password);
            ps.setString(3,users_NRIC);
            ps.setString(4,users_securityQuestion);
            ps.setString(5,users_answer);
            int checks = ps.executeUpdate();
            if(checks != 0){                
                  success = true;                       
            }
            else{
              System.out.println("Failed to insert user data");
            }
 db.terminate();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多