2017-05-03 4 views
-2

データベースを処理するSQLite Helperクラスを作成しました。android.database.sqlite.SQLiteException: "table"の近く:構文エラー(コード1):コンパイル中:

私はコードを実行している間、このエラーを常に受け​​ていますが、私はCreate Table構文で何か間違ったものを見つけることができません。

ERROR: android.database.sqlite.SQLiteException: near "table": syntax error (code 1): , while compiling:CREATE TABLE table (ID INTEGER PRIMARY KEY AUTOINCREMENT, ACCOUNT_HOLDER TEXT, DEBIT INTEGER, CREDIT INTEGER, BALANCE INTEGER)

package com.example.user.balancesheet; 

    import android.content.ContentValues; 
    import android.content.Context; 
    import android.database.sqlite.SQLiteDatabase; 
    import android.database.sqlite.SQLiteOpenHelper; 
    import android.util.Log; 

    public class DatabaseHelper extends SQLiteOpenHelper{ 
    private static final int DB_Version=1; 
    private static final String Database="BalanceSheet.db"; 
    public static String Table="table"; 

    public DatabaseHelper(Context context) { 
      super(context, Database, null, DB_Version); 
      SQLiteDatabase db=this.getWritableDatabase(); 
     } 

     @Override 
     public void onCreate(SQLiteDatabase db) {  
      String query="CREATE TABLE " + Table +" (ID INTEGER PRIMARY KEY 
    AUTOINCREMENT, ACCOUNT_HOLDER TEXT, DEBIT INTEGER, CREDIT INTEGER, 
    BALANCE INTEGER)"; 
      db.execSQL(query); 
     } 

     @Override 
     public void onUpgrade(SQLiteDatabase db, int oldVersion, int 
    newVersion) { 
        db.execSQL("DROP IF EXIST " + Table); 
      onCreate(db); 
     } 

     public Boolean insertdata(String name, int deb, int cred, int bal){ 
      ContentValues val=new ContentValues(); 
      val.put("ACCOUNT_HOLDER", name); 
      val.put("DEBIT", deb); 
      val.put("CREDIT_HOLDER", cred); 
      val.put("BALANCE", bal); 
      SQLiteDatabase db=this.getWritableDatabase(); 
      long result=db.insert(Table, null, val); 
      Log.d("METHOD","ADDLEDGER"); 
      if(result==-1) 
       return false; 
      else 
       return true; 
     } 
    } 
+1

https://sqlite.org/lang_keywords.html –

答えて

2

理由は、テーブル名などの単語tableを使用することです。

テーブルはキーワードであるため、識別子として使用することはできません。

documentationを参照してください。

+0

ありがとうございます。私はそれを「Tablename」に置き換えました。しかし、それはまだ同じエラーを示しています。 –

+0

'public static String Table =" tablename "'と変更しましたか? 'tablename'はキーワードではないので、動作するはずです。 'public static String Table =" table1 "'のようなものを試してみてください。 – Renzo

+0

それはうまくいった。ありがとう。 –

関連する問題