2016-03-24 4 views
0

Ich bin neu in JFrame Jtable. Ich habe versucht, eine Einfügeabfrage zu machen, aber ich bekomme den Fehler "Spalte nicht erlaubt".JTable Einfügen Abfrage

private void AddActionPerformed(java.awt.event.ActionEvent evt) { 
    try{ 
     theQuery("INSERT INTO CONFERENCE(CONFERENCEID,NAME,YEAR,STARTDATE,ENDDATE,COUNTRY,CITY,VENUE,EMAIL)" 
      +"values('"+cid.getText()+"','"+cname.getText()+"','"+cyear.getYear()+"','" 
      +csd.getDate()+"','"+ced.getDate()+"','"+country.getText()+"','"+city.getText() 
      +"','"+venue.getText()+"',"+email.getText()+")"); 
    } catch(Exception ex){} 
} 

    public void theQuery(String query){ 
    Connection con = null; Statement st = null; 
    try{ con = DriverManager.getConnection("jdbc:oracle:thin:@example:123", "123", "student"); 
    st = con.createStatement(); 
    st.executeUpdate(query); 
    JOptionPane.showMessageDialog(null,"Query Executed"); } 
    catch(Exception ex){ JOptionPane.showMessageDialog(null,ex.getMessage()); } } 
+0

können wir die Methode theQuery() sehen? Auch würde ich Ihnen empfehlen, vorbereitete Anweisungen anstelle von rohen Abfragen zu verwenden. –

+0

yup hat die Methode thequery hinzugefügt –

+0

versuche hier Klammern hinzuzufügen ", '" + email.getText() + "')" –

Antwort

1

Ich denke, Sie sollten Ihr Connection System so für den Anfang machen.

public void theQuery() 
{ 
    Class.forName("com.mysql.jdbc.Driver"); 
    String url = "jdbc:mysql://localhost:3306/yourBDD"; 
    String sqlLogin = "login"; 
    String sqlPassword = "password"; 
    Connection conn = DriverManager.getConnection(url, sqlLogin, sqlPassword); 
    String query = " insert into CONFERENCE(CONFERENCEID, NAME, YEAR, COUNTRY, CITY, VENUE, EMAIL) values (?, ?, ?, ?, ?, ?, ?)"; 
    PreparedStatement preparedStmt = cnx.prepareStatement(query); 
    preparedStmt.setString(1, cid.getText()); 
    preparedStmt.setString(2, cname.getText()); 
    preparedStmt.setString(3, cyear.getYear()); 
    preparedStmt.setString(4, csd.getDate()); 
    preparedStmt.setString(5, ced.getDate()); 
    preparedStmt.setString(6, country.getText()); 
    preparedStmt.setString(7, city.getText(); 
    ... 
    preparedStmt.execute(); 
    conn.close(); 
}