Reputation: 17
I started to working on SQLite database for my table. And I'm getting this error when I'm trying to save informations to database with text lanes. I'm working with NetBeans.
private void Cmd_saveActionPerformed(java.awt.event.ActionEvent evt) {
try{
String sql = "Insert into KYaziciProg (Yapılan İşlem ,Müşteri Adı ,Ürünün Cinsi ,Ürünün Miktarı ,Ürünün Fiyatı ,Ürünün Tutarı ,İşlem Tarihi ,Ödeme Vadesi ,Yapılan Ödeme ,Kalan Bakiye) values (?,?,?,?,?,?,?,?,?,?)";
pst=conn.prepareStatement(sql);
pst.setString(2, jTextField2.getText());
pst.setString(3, jTextField1.getText());
pst.setString(4, jTextField3.getText());
pst.setString(5, jTextField4.getText());
pst.setString(6, jTextField5.getText());
pst.setString(7, jTextField6.getText());
pst.setString(8, jTextField7.getText());
pst.setString(9, jTextField8.getText());
pst.setString(10, jTextField9.getText());
pst.setString(11, jTextField10.getText());
pst.execute();
JOptionPane.showMessageDialog(null, "Kaydedildi!");
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, e);
}
Update_table();
}
This is the codes where I'm trying to get this ones. I started from 2 in setString . Because I don't know but in SQLite I saw 1 more column which I didn't create before. See the image below
EDIT:
Same error on when clicked button. I saw these errors on the Run Panel; run:
java.sql.SQLException: near "İşlem": syntax error
at org.sqlite.DB.throwex(DB.java:288)
at org.sqlite.NativeDB.prepare(Native Method)
at org.sqlite.DB.prepare(DB.java:114)
at org.sqlite.PrepStmt.<init>(PrepStmt.java:37)
at org.sqlite.Conn.prepareStatement(Conn.java:231)
at org.sqlite.Conn.prepareStatement(Conn.java:224)
at org.sqlite.Conn.prepareStatement(Conn.java:213)
at populatethingy.Cmd_saveActionPerformed(populatethingy.java:253)
at populatethingy.access$300(populatethingy.java:13)
at populatethingy$4.actionPerformed(populatethingy.java:210)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6289)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6054)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:617)
at java.awt.EventQueue$2.run(EventQueue.java:615)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
BUILD SUCCESSFUL (total time: 3 seconds)
Upvotes: 0
Views: 365
Reputation: 108960
Your columns have spaces in them, you need to quote them, so:
Insert into KYaziciProg ("Yapılan İşlem" ,"Müşteri Adı" , ...
Upvotes: 1
Reputation: 10959
You need to start from 1. The Column ROWID
is autogenerated by Sqlite.
But that wouldn't matter anyway as if you look at your insert statement, you do not specify that column so you are not inserting into into that column.
The parameter index corresponds to the ?
characters in your insert statement so you are getting that error because the way your code is now you would be trying to execute the statement (Note that "Value from jTextFeildX
is just my puesdo string for what ever the value is.
Insert into KYaziciProg (Yapılan İşlem ,Müşteri Adı ,Ürünün Cinsi ,Ürünün Miktarı ,Ürünün Fiyatı ,Ürünün Tutarı ,İşlem Tarihi ,Ödeme Vadesi ,Yapılan Ödeme ,Kalan Bakiye) values (?,value from jTextFeildX,value from jTextFeildX,value from jTextFeildX,value from jTextFeildX,value from jTextFeildX,value from jTextFeildX,value from jTextFeildX,value from jTextFeildX,value from jTextFeildX)";
Notice that there is a ?
still in the query.. meaning invalid SQL
You want your code to be
pst.setString(1, jTextField2.getText());
pst.setString(2, jTextField1.getText());
pst.setString(3, jTextField3.getText());
pst.setString(4, jTextField4.getText());
pst.setString(5, jTextField5.getText());
pst.setString(6, jTextField6.getText());
pst.setString(7, jTextField7.getText());
pst.setString(8, jTextField8.getText());
pst.setString(9, jTextField9.getText());
pst.setString(10, jTextField10.getText());
EDIT Add this code and the go to your netbeans ouput console and post to your question the resulting lines.
catch(Exception e)
{
e.printStackTrace(); // Add this line
JOptionPane.showMessageDialog(null, e);
}
Upvotes: 0