2016-08-11 3 views
0

Imは私のコンストラクタクラスの新しいデータベースとテーブルを作成しようとするコンストラクタ内のテーブルのエラーを作成し、しかし、私はこのラインerorrで見つける: db.execSQL(「tblApp存在していない場合はCREATE TABLE(_ID INTEGER PRIMARY KEY AUTOINCREMENT UNION 、タイトルTEXT) "、ヌル); 、アプリがクラッシュしました。SQLiteは

これは私のクラスである:SQLiteので

package ir.rezvania.modirbash; 

import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.widget.ListView; 
import android.widget.SimpleCursorAdapter; 
import android.widget.Toast; 

public class db { 
    Context ctx; 
    Cursor crs; 
    private SQLiteDatabase db; 
    public db(Context ctx){ 
     this.ctx=ctx; 
     db = ctx.openOrCreateDatabase("`dbApp`", Context.MODE_PRIVATE, null); 
     db.execSQL("CREATE TABLE IF NOT EXIST `tblApp` (_ID Integer Primary key autoincrement union, Title Text)",null); 
    } 
    public void Insert(String FILDS,String VALUES){ 
     db.execSQL("INSERT INTO `tblApp` ("+FILDS+")VALUES("+VALUES+");"); 
    } 
    public void Update(String ID,String COLUMN,String VALUE){ 
     db.execSQL("UPDATE `tblAPP` SET"+COLUMN+"="+VALUE+"WHERE _ID="+ID+";"); 
    } 
    public void Delete(String ID){ 
     db.execSQL("DELETE FROM `tblApp` WHERE _ID="+ID+";"); 
    } 
    public Cursor Show(){ 
     crs=db.rawQuery("SELECT * FROM `tblApp`",null); 
     return crs; 
    } 

    public void finalize(){ 
     db.close(); 
    } 
} 
+1

はあなたのエラーログ –

+2

に従ってください作成コマンド。すべてのコマンドとクエリが間違っています。 –

+1

を投稿あなたがエラーの、だけでなく、表に**たくさんあるhttps://developer.android.com/training/basics/data-storage/databases.html –

答えて

-1

INTEGER PRIMARY KEY宣言された列が自動インクリメントされます。 SQLiteには自動インクリメントキーワードがありません。そのため、エラーが発生しています。 詳しくはSQLite FAQをご覧ください。

+1

SQLiteに 'AUTOINCREMENT'がありますhttps://www.sqlite.org/syntax/column-constraint.html – tynn

+0

https://www.sqlite.org/autoinc.htmlこのリンクも確認してください –

+0

それでもエラーではありませんキーをどこかに置く。それは単に必要でも効率的でもありません。 – tynn

0

間違った言葉遣いを使用しているため、テーブルの作成が失敗します。それはあなたが使用する必要がありますIF NOT EXISTSです。簡単にするために、すべてのキーに大文字を使用する必要があります。 tblAppはキーワードではないので、`を使用する必要はありません。unionはどこに置いても意味がありません。AUTOINCREMENT is not needed

db.execSQL("CREATE TABLE IF NOT EXISTS tblApp (_ID INTEGER PRIMARY KEY, Title TEXT)", null);