Android SQL应用程序已停止
我按照下面的教程创建了一个SQL数据库应用程序,不幸的是,我遇到了一个问题,应用程序无法打开,有人能帮我看看我是否做错了什么 这是SQL代码Android SQL应用程序已停止,android,sql,android-sqlite,Android,Sql,Android Sqlite,我按照下面的教程创建了一个SQL数据库应用程序,不幸的是,我遇到了一个问题,应用程序无法打开,有人能帮我看看我是否做错了什么 这是SQL代码 package com.example.sqltest2; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class Databa
package 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, Aisle INTEGER, LOC INTEGER)");
}
编辑:主要问题可能是@Marc B指出的,PRIMAY应该是PRIMARY 我还注意到: 您的表名中有.db 更改此项:
public static final String TABLE_NAME = "productstable.db";
为此:
public static final String TABLE_NAME = "productstable";
除了马克和丹尼尔的回答;CREATE语句需要一个空格。 createtable+table_NAME+将生成类似createtableproductstable的内容。在表格后面放置一个空格,以便创建表格+表格名称+…主键?也许是首席吧?