首页 文章

不幸的是,Android SQL应用程序停止了

提问于
浏览
0

我已经按照以下教程(https://www.youtube.com/watch?v=p8TaTgr4uKM)创建了一个SQL数据库应用程序,不幸的是我遇到了一个问题,即应用程序没有做错的事情't open, can anyone help and see if i'm .

这是SQL代码

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)");
}

2 回答

  • 0

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

    我也注意到了这一点:

    你的 TABLE_NAME 中有 .db .

    改变这个:

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

    对此:

    public static final String TABLE_NAME = "productstable";
    
  • 0

    除了Marc 's and Daniel'的回复;你的 CREATE 语句需要一个空格 .
    "create table" + TABLE_NAME +" 会产生类似 create tableproductstable 的东西 . table 之后放置一个空格 "create table " + TABLE_NAME + ...

相关问题