Ucanaccess данные таблицы доступны только для чтения

Хорошо, поэтому я создаю код для кассы, используя доступ MS и Java Netbeans. Программа должна вставить ProductID, Price, количество, total и lastid в таблицу AdminSales, но всякий раз, когда я запускаю программу, она сообщает, что данные таблицы только читаются. Кто-нибудь может мне помочь? Вставка в первую базу данных работает, но я не могу заставить ее вставить ее в таблицу AdminSales, пожалуйста, это для моего IA, поэтому любая помощь будет очень признательна.

 private void sales()
{
    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
    LocalDateTime now = LocalDateTime.now();
    String date = dtf.format(now);

    String subtot = txtsub.getText();
    String pay = txtpay.getText();
    String bal = txtbal.getText();
    int lastinsertid = 0;
    
    try {
        Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
        conn=DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\cnoye\\Documents//mydb.accdb"); //connect to database
        
        String query = "insert into Sales(Date,Subtotal,Pay,Balance)values(?,?,?,?)";
        insert = conn.prepareStatement(query,Statement.RETURN_GENERATED_KEYS);
        insert.setString(1, date);
        insert.setString(2, subtot);
        insert.setString(3, pay);
        insert.setString(4, bal);
        insert.executeUpdate();
        ResultSet genteratedKeyResult = insert.getGeneratedKeys();
        
        if (genteratedKeyResult.next())
        {
            lastinsertid = genteratedKeyResult.getInt(1);

        }
        
        int row = jTable1.getRowCount();
        
        
         String query1 = "insert into AdminSales(SalesID,ProductID,Price,Quantity,Total)values(?,?,?,?,?)";
         insert = conn.prepareStatement(query1);
         
         String ProductID = "";
         String price = "";
         String qty = "";
         double total=0;
        
        for(int i = 0; i<jTable1.getRowCount(); i++)
         {
         
             ProductID = (String)jTable1.getValueAt(i, 0);
             price = (String)jTable1.getValueAt(i, 3);
             qty = (String)jTable1.getValueAt(i, 2);
             total= (double)jTable1.getValueAt(i, 4);
         
             
             insert.setInt(1, lastinsertid);
             insert.setString(2, ProductID);
             insert.setString(3, price); 
             insert.setString(4, qty);
             insert.setDouble(5, total);
             insert.executeUpdate();

         }
        insert.addBatch();
        JOptionPane.showMessageDialog(this, "Record Saved");
        

    } catch (ClassNotFoundException ex) {
        Logger.getLogger(Checkouttest.class.getName()).log(Level.SEVERE, null, ex);
        
        JOptionPane.showMessageDialog(this, ex);
    } catch (SQLException ex) {
        Logger.getLogger(Checkouttest.class.getName()).log(Level.SEVERE, null, ex);
        JOptionPane.showMessageDialog(this, ex);
    }

}

Обычно в Windows, если файл доступен только для чтения, он открывается в режиме монопольной записи другой программой или у вас нет прав на запись в файловой системе NTFS для файла / папки. Закройте программу и проверьте, можете ли вы переименовать файл в проводнике Windows.

Robert 30.03.2021 11:53
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
10
0

Другие вопросы по теме