2015-03-22 3 views
0
try { 
    Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); 
    conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\AhzelBrend\\Documents\\Student.mdb"); 
    Statement stmt = conn.createStatement(); 

    String Query = "DELETE FROM StudentTable WHERE FULLNAME='"+ List1.getSelectedValue()+ "'"; 
    stmt.execute(Query); 
    JOptionPane.showMessageDialog(null,"Record Deleted"); 
    FillList(); 
    IKlir(); 
    } 
    catch(ClassNotFoundException ex) { 
     Logger.getLogger(Student.class.getName()).log(Level.SEVERE,null, ex); 
     } 
    catch(SQLException ex){ 
     JOptionPane.showMessageDialog(null, ex.toString()); 
    } 
+0

и ошибка? – Zielu

+0

и краткое описание, что не произошло и что произошло. – mico

+0

, когда я нажимаю кнопку «Удалить», отображается сообщение «record deleted» в messagedialog, но в списке1 оно не удалялось. то же самое в базе данных он не удалял. пожалуйста, помогите im noob в java. – jayson

ответ

0

Попробуйте этот код с вашей базой данных и посмотрите на результат. Вы можете немного изменить и протестировать его с помощью своей базы данных. Упование что помощь

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 

public class DbTest { 

    public static void main(String[] args) { 

     try { 
      // Your MS Access driver 
      // Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); 

      // My Test H2 driver 
      Class.forName("org.h2.Driver"); 

      // Your MS Acess connection 
      // Connection conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\AhzelBrend\\Documents\\Student.mdb"); 

      // My H2 connection 
      Connection conn = DriverManager.getConnection("jdbc:h2:mem:test;DB_CLOSE_DELAY=10"); 
      Statement stmt = conn.createStatement(); 

      // Create and fill database 
      stmt.execute("CREATE TABLE StudentTable (FULLNAME VARCHAR(255))"); 
      for (int i = 0; i < 10; i++) { 
       stmt.executeUpdate("INSERT INTO StudentTable(FULLNAME) VALUES ('Name " + i + "')"); 
      } 

      // Your delete statement 
      // String Query = "DELETE FROM StudentTable WHERE FULLNAME='"+ List1.getSelectedValue()+ "'"; 
      // My delete statement 
      String Query = "DELETE FROM StudentTable WHERE FULLNAME='Name 5'"; 
      int rows = stmt.executeUpdate(Query); 
      System.out.println(rows + " rows affected"); 
      conn.commit(); 
      conn.close(); 

      // Open a new Connection to test th result 
      conn = DriverManager.getConnection("jdbc:h2:mem:test;DB_CLOSE_ON_EXIT=FALSE"); 
      stmt = conn.createStatement(); 
      ResultSet results = stmt.executeQuery("SELECT * FROM StudentTable"); 
      // Stundent 'Name 5' has been deleted 
      while (results.next()) { 
       System.out.println("Student " + results.getString("FULLNAME")); 
      } 
      // JOptionPane.showMessageDialog(null,"Record Deleted"); 
      // FillList(); 
      // IKlir(); 
     } catch (ClassNotFoundException ex) { 
      ex.printStackTrace(); 
     } catch (SQLException ex) { 
      ex.printStackTrace(); 
     } 

    } 
} 
+0

спасибо, сэр .... он работает ..... – jayson

+0

@jayson - Означает ли это, что он работает с вашей базой данных MS Access? Тогда проблема заключается в методе 'FillList()' – drkunibar

Смежные вопросы