2017-07-08 5 views
0

こんにちは、DB SQLiteに値を挿入するためのクエリを作成しています。質問SQLiteのクエスチョンマークに誤りがあります。

まず、私は私の記録から読み、2つの値を検索するため、例えば、私は新しいテーブルを作成し、新しい値を挿入

私のコードスニペットは、次のとおりです。

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:msearch構文エラーでSQLエラーまたは欠落しているデータベース

+0

これは完全なエラーメッセージではありません –

答えて

0

ラリーは良い点を作り、より慎重にあなたのコードを見て、私はこの問題は、それはあなたがデータベース名とmsearchを修飾しなければならないと言っているように見えるの文

st.executeUpdate("delete msearch"); 

であると信じています。


これは、あなたが列名と値のリストのリストを与えるINSERT文

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

の構文です。

カラム名のリストはありません。

これは動作しません。

+1

これは正しくありません。明示的に列名を付けるのは確かに好ましいですが、値のみの 'INSERT'構文が許可されています。指定された値の数は、表の列の数と完全に一致する必要があります。テーブル構造を知らなければ、これがエラーの原因かどうかを知ることはできません。 –

関連する問題