Android SQL应用不幸的应用已停止

我遵循以下教程(https://www.youtube.com/watch?v=p8TaTgr4uKM)创建SQL数据库应用程序,不幸的是,我遇到了应用程序无法打开的问题,任何人都可以帮助并查看是否我做错了什么。

这是SQL代码包com.example.sqltest2;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "products.db";
public static final String TABLE_NAME = "productstable.db";
public static final String COL_1 = "ID";
public static final String COL_2 = "NAME";
public static final String COL_3 = "Aisle";
public static final String COL_4 = "LOC";

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

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("create table" + TABLE_NAME +" (ID INTEGER PRIMAY KEY    AUTOINCREMENT, NAME TEXT, Aisle INTEGER, LOC INTEGER)");
}

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

}

Logcat指向语法错误
public void onCreate(SQLiteDatabase db){db.execSQL(“create table”+ TABLE_NAME +“(ID INTEGER PRIMAY KEY AUTOINCREMENT,NAME TEXT,AISTLE INTEGER,LOC INTEGER)”); }


编辑:主要问题可能是@Marc B指出, PRIMAY应该是PRIMARY

我也注意到了这一点:

您的TABLE_NAME包含.db

改变这个:

public static final String TABLE_NAME = "productstable.db";

为此:

public static final String TABLE_NAME = "productstable";

除了Marc和Daniel的回答之外, 你的CREATE语句需要一个空间。
"create table" + TABLE_NAME +"将产生类似于create tableproductstable 。在table create tableproductstable放置一个空格以"create table " + TABLE_NAME + ...

链接地址: http://www.djcxy.com/p/31967.html

上一篇: Android SQL app unfortunately app has stopped

下一篇: Cursor for database on sdcard not closing or deactive