2016-05-29 24 views
1

Ich versuche, einen Datensatz in MS Access Datenbank zu aktualisieren UCanAccess, aber ich erhalte diese Mitteilung, wenn ich versuche, es zu tun:Java NoSuchMethodError: com.healthmarketscience.jackcess.Table.isAllowAutoNumberInsert()

net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.5 java.lang.NoSuchMethodError: com.healthmarketscience.jackcess.Table.isAllowAutoNumberInsert()Z

Code:

public void saveBookInfo(){ 
    try {    
     Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); 
     Connection connectDb = DriverManager.getConnection("jdbc:ucanaccess://books.mdb");    

     String sql = "UPDATE bookInfo SET bookName=?, companyName=?, bossName=?, bossPosition=?, developerName=?, developerCompanyName=? WHERE bookId=?"; 

     PreparedStatement pstmt = connectDb.prepareStatement(sql2); 
     pstmt.setString(1, jTextField2.getText()); 
     pstmt.setString(2, jTextField3.getText()); 
     pstmt.setString(3, jTextField4.getText()); 
     pstmt.setString(4, jTextField5.getText()); 
     pstmt.setString(5, jTextField6.getText()); 
     pstmt.setString(6, jTextField7.getText()); 
     pstmt.setInt(7, currentBookId); 

     pstmt.executeUpdate(); 
     System.out.println("\nSuccess!"); 

     closeSC(pstmt, connectDb); 

    } catch (Exception ex) { 
     System.out.println("\nException (saveBookInfo): " + ex); 
    } 
} 

weiß jemand, was das Problem ist?

(DELETE Abfrage funktioniert gut)

+0

Wo ist currentBookId definiert? –

+0

@Tilak In der MainWindow-Klasse als "public static int currentBookId = 0;" – user3100568

+0

Vergewissern Sie sich, dass Sie Jackcess Version 2.1.3 für Ihr Projekt verwenden. Beachten Sie, dass "jackcess-2.1.3.jar" im Ordner "lib \" der UCanAccess-Distribution verfügbar ist. –

Antwort

1

Beantwortet von Gord Thompson:

„Stellen Sie sicher, dass Sie Jackcess Version 2.1.3 mit Ihrem Projekt verwenden Beachten Sie, dass. "Jackcess-2.1.3.jar" ist Verfügbar im Ordner lib der UCanAccess-Distribution. "