2017-07-08 85 views
0

您好我正在編寫一個查詢以在數據庫SQLite中插入值。帶有問號的語句插入時出現SQLite錯誤

首先,我從我的記錄,讀取和搜索兩個值,例如,然後創建一個新表,並在插入新值

我的代碼片段如下:

try 
    { 
    Class.forName("org.sqlite.JDBC"); 
    Connection con=DriverManager.getConnection("jdbc:sqlite:tests.db"); 
    con.setAutoCommit(false); 
    Statement st=con.createStatement(); 
    st.executeUpdate("delete msearch"); 
    ResultSet res=st.executeQuery("select * from newmobile_details"); 
    Boolean rec=res.next(); 
    if(!rec) 
    { 
     JOptionPane.showMessageDialog(null,"لايوجد سجلات"); 
    } 
    else 
    { 
     do 
     { 
     String mid=res.getString(1); 
     String model=res.getString(2); 
     String name=res.getString(3); 
     int price=res.getInt(4); 
     String pcolor=res.getString(5); 
     String imei=res.getString(6); 
     java.sql.Date date=res.getDate(7); 
     String access=res.getString(8); 

     if(mname.equalsIgnoreCase(name)) 
     { 
      PreparedStatement prp=con.prepareStatement("insert into msearch values(?,?,?,?,?,?,?,?)"); 
      prp.setString(1,mid); 
      prp.setString(2,model); 
      prp.setString(3,name); 
      prp.setInt(4,price); 
      prp.setString(5,pcolor); 
      prp.setString(6,imei); 
      prp.setDate(7,date); 
      prp.setString(8,access); 

      prp.executeUpdate(); 

      System.out.println("iam inside2"); 
      rows++; 

      b=1; 
      jTextField2.setText(""); 
     } 


    }while(res.next()); 

    if(b==0) 
    { 
     JOptionPane.showMessageDialog(null,"لم يتم العثور على الموبايل "); 
     jTextField2.setText(""); 
    } 
    } 
    con.commit(); 
    con.close(); 
} 

catch(Exception e) 
{ 
    JOptionPane.showMessageDialog(null,"The error is1:" +e); 
} 

我得到下面唯一的例外:

錯誤IS1:SQL錯誤或丟失的數據庫中msearch語法錯誤

+0

這不是完整的錯誤信息 –

回答

0

拉里使得一個好點,看着你的代碼更仔細,我相信這個問題是與聲明

st.executeUpdate("delete msearch"); 

這似乎是說,你應該與數據庫名排位賽msearch


這是INSERT語句

INSERT INTO TABLE_NAME (c1, c2, c3,...cN) 
VALUES (v1, v2, v3,...vN); 

你給列名的列表和值列表的語法。

您沒有列名稱列表。

這是行不通的。

+1

這是不正確的。當然,最好是明確指定列的名稱,但僅允許使用值的INSERT是允許的語法。指定的值的數量必須與表中的列數完全匹配。在不知道表結構的情況下,不可能知道這是否是錯誤的根源。 –