2016-09-14 7 views
-2

次のエラーが発生しandroid.database.sqlite.SQLiteException:近い "tableplayers":構文エラー(コード1)私は、[挿入]ボタンをクリックしたとき

CustomOpenHelper.java

public class CustomOpenHelper extends SQLiteOpenHelper{ 

public static final String TABLE_NAME = "players"; 
public static final String COLUMN_ID = "_id"; 
public static final String COLUMN_NAME = "name"; 
public static final String COLUMN_SCORE = "score"; 

private static final String DATABASE_CREATE = "create table" + TABLE_NAME 
     + "(" + COLUMN_ID + "integer primary key autoincrement," 
     + COLUMN_NAME +"text not null," 
     + COLUMN_SCORE +"integer not null);"; 


public CustomOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { 
    super(context, name, factory, version); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL(DATABASE_CREATE); 
} 

logcat

android.database.sqlite.SQLiteException: "tableplayers"の近く:構文エラー(コード1):、コンパイル中に:tableplayersを作成します(_idintegerプライマリキーの自動インクリメント、ネームスペースがnullでない、scoreinteger not null)。

この問題を解決するにはどうすればよいですか?

+1

のようになります。あなたは、キーワード 'table'の後にスペースを追加する必要があります。' + TABLE_NAME'を「テーブルの作成」。 – CFreitas

答えて

2

作成コマンドでtableTABLE_NAMEの間にスペース( ')を入力する必要があります。

private static final String DATABASE_CREATE = "create table " + TABLE_NAME 
     + "(" + COLUMN_ID + " integer primary key autoincrement," 
     + COLUMN_NAME +" text not null," 
     + COLUMN_SCORE +" integer not null);"; 

通知"create table "における各columnのデータ型の前に追加スペース。

-2

はないの代わりテーブルを作成存在する場合はテーブルを作成使用してみてください。そして、また、変更後のクエリが

private static final String DATABASE_CREATE = "create table if not exists " + TABLE_NAME 
     + " (" + COLUMN_ID + " integer primary key autoincrement," 
     + COLUMN_NAME +" text not null," 
     + COLUMN_SCORE +" integer not null);"; 
+0

。CREATE TABLEと「(」の間にスペースを与えますテーブル名と "(" –

+1

'の間にスペースを入れてください。また、作成テーブルと"( "。" - USELESS "の間にスペースを入れてください。 –

関連する問題