-1

Android アプリケーションを作成しようとしていますが、データベースが必要です。SQLite でデータベースを作成しましたが、アプリケーションを実行すると次のエラーが表示されます。

java.lang.RuntimeException: Unable to start activity ComponentInfo 
{com.example.budgetmanagerapp/com.example.budgetmanagerapp.Activity.Home}: 
android.database.sqlite.SQLiteException: near "existsday": syntax error (code 1): , while 
compiling: create table if not existsday(idDay integer primary key autoincrement, day integer);

そして、ここに私のコードがあります:

public class DatabaseHelper extends SQLiteOpenHelper{
public static final String TABLE_DAY = "day";
public static final String ID_DAY = "idDay";
public static final String DAY = "day";

public static final String CREATE_TABLE_DAY = "create table if not exists" + TABLE_DAY + "("
        + ID_DAY + " integer primary key autoincrement, " + DAY +" integer);";

private static final String DATABASE_NAME ="budgetManager.db";
private static final int version = 1;

public DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, version);
  }

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

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

}

public class Home extends ListActivity {

protected SQLiteDatabase db;
protected Cursor cursor;
protected ListAdapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.home);

    db = (new DatabaseHelper(this)).getWritableDatabase();

    viewData();
}

@SuppressWarnings("deprecation")
public void viewData(){
    cursor = db.rawQuery("SELECT day FROM day", 
                        null);

    adapter = new SimpleCursorAdapter(this, R.layout.home, 
                                    cursor, new String[]{"day"}, 
                                    new int[] {R.id.ceva});
    setListAdapter(adapter);
}
}

誰かがどこに問題があるか教えてもらえますか?

4

1 に答える 1

3

exists以下に示すように、予約語とテーブル名の間にスペースを追加します。

public static final String CREATE_TABLE_DAY = "create table if not exists " + TABLE_DAY + " (" + ID_DAY + " integer primary key autoincrement, " + DAY +" integer);";
于 2013-04-17T12:06:26.483 に答える