【问题标题】:"Unexpected end of statement" error in UCanAccessUCanAccess 中的“语句意外结束”错误
【发布时间】:2015-05-07 08:43:27
【问题描述】:

我使用下面的代码来更新或编辑我的 Access 数据库中的数据,但每次单击按钮时都会出现此错误:

net.ucanaccess.jdbc.UcanaccessSQLException: 语句意外结束

public void actionPerformed(ActionEvent e) 
{                   

        String employeeName = endrollNameFields.getText();
        String employeeAddress = endrollAddressFields.getText(); 
        String employeeStatus = endrollEmploymentStatusFields.getText();
        String employeeDateOfMembership = dateOfMembershipFields.getText();
        String employeeAge = ageFields.getText();
        String employeMStatus = statusFields.getText();
        String employeeBloodType = bloodTypeFields.getText();
        String employeeDateBirth = birthDateFields.getText();
        String employeeGender = genderFields.getText();
        String beginningCapital = beginningCapitalFields.getText();
        String grossSalary = grossSalaryFields.getText();
        String salaryDeductions = salaryDeductionFields.getText(); 
        String netSalary = netSalaryFields.getText();

        try
        {
            //------------CREATE CONNECTION TO DATA BASE--------------/

            String DBPAD = "sourceFolder/employeeTable2.mdb";
            String DB = "jdbc:ucanaccess://" + DBPAD;                           

            con = DriverManager.getConnection(DB);                  
            st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
            String sql = "Select * employeeTable2";                     

            rs = st.executeQuery(sql);                      

             if (rs != null) 
                 while ( rs.next()) 
                 {
                     rs.updateString("Employee Name", employeeName);
                     rs.updateString("Employee Address", employeeAddress);  
                     rs.updateString("Employee Status", employeeStatus);
                     rs.updateString("Employee Date of Membership", employeeDateOfMembership);
                     rs.updateString("Employee Age", employeeAge);
                     rs.updateString("Employee Marital Status", employeMStatus);
                     rs.updateString("Employee Blood Type", employeeBloodType);
                     rs.updateString("Employee Date Birth", employeeDateBirth);
                     rs.updateString("Employee Gender", employeeGender);
                     rs.updateString("Beginning Capital", beginningCapital);
                     rs.updateString("Gross Salary", grossSalary);
                     rs.updateString("Salary Deductions", salaryDeductions);
                     rs.updateString("Net Salary", netSalary);                      

                     rs.updateRow();
                 }              

            st.close();     
            con.close();

            st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
            String sql1 = "select * from employeeTable2";
            rs = st.executeQuery(sql1);

            JOptionPane.showMessageDialog(null, "<html>" + "<font color=\"#008000\">" + "<html><span style='font-size:1.5em'>Update to Data Base is Successful");

            endrollNameFields.setText(" ");
            endrollAddressFields.setText(" ");
            endrollEmploymentStatusFields.setText(" ");
            dateOfMembershipFields.setText(" ");
            ageFields.setText(" ");
            statusFields.setText(" ");
            bloodTypeFields.setText(" ");
            birthDateFields.setText(" ");
            genderFields.setText(" ");
            beginningCapitalFields.setText(" ");;
            grossSalaryFields.setText(" ");
            salaryDeductionFields.setText(" ");
            netSalaryFields.setText(" ");   

            editFrame.dispose();



        }
        catch(Exception e1)
        {
            JOptionPane.showMessageDialog(null, e1);
        }               
    }       

});

【问题讨论】:

  • 我认为你在Select * employeeTable2 中缺少FROM
  • 你摆脱了你面临的错误吗?如果没有,请看我的回答。

标签: java database ms-access exception ucanaccess


【解决方案1】:

您在代码中编写了错误的 SQL 查询

con = DriverManager.getConnection(DB);                  
st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql = "Select * employeeTable2";   

改成

String sql = "Select * FROM employeeTable2";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    相关资源
    最近更新 更多