原因:android.database.sqlite.SQLiteException:无法将只读数据库从版本0升级到1

尝试创建sqlite数据库时,我收到以下LogCat异常:

Caused by: android.database.sqlite.sqliteException: Can’t upgrade read-only database from version 0 to 1

这是我的代码

import static android.provider.BaseColumns._ID;
import static org.inetizen.university_tiMetable.Constants.DAY_OF_WEEK;
import static org.inetizen.university_tiMetable.Constants.DURATION;
import static org.inetizen.university_tiMetable.Constants.MODULE_CODE;
import static org.inetizen.university_tiMetable.Constants.ROOM;
import static org.inetizen.university_tiMetable.Constants.START_TIME;
import static org.inetizen.university_tiMetable.Constants.TABLE_NAME;
import static org.inetizen.university_tiMetable.Constants.TYPE_OF_SESSION;
import android.content.Context;
import android.database.sqlite.sqliteDatabase;
import android.database.sqlite.sqliteOpenHelper;

public class TiMetableData extends sqliteOpenHelper {
private static final String DATABASE_NAME = "tiMetable.db";
private static final int DATABASE_VERSION = 1;

/** Create a helper object for the TiMetable database **/
public TiMetableData(Context ctx) {
    super(ctx,DATABASE_NAME,null,DATABASE_VERSION);
}

@Override
public void onCreate(sqliteDatabase db) {
    db.execsql("CREATE TABLE " + TABLE_NAME + " (" +_ID
            + " INTEGER PRIMARY KEY AUTOINCREMENT " + MODULE_CODE
            + " TEXT NOT NULL " + DAY_OF_WEEK + " TEXT NOT NULL "
            + START_TIME + " INTEGER NOT NULL " + DURATION
            + " INTEGER NOT NULL " + TYPE_OF_SESSION + " TEXT NOT NULL "
            + ROOM + " TEXT NOT NULL )");
}

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

这是我的LogCat:

06001

有关如何解决异常的任何建议?

解决方法

您使用的sql语法看起来不正确,您缺少逗号.试试这个: db.execsql(“CREATE TABLE”TABLE_NAME“(”_ ID“INTEGER PRIMARY KEY AUTOINCREMENT,”MODULE_CODE“TEXT NOT NULL,”DAY_OF_WEEK“TEXT NOT NULL,”START_TIME“INTEGER NOT NULL,”DURATION“INTEGER NOT NULL,”TYPE_OF_SESSION“ TEXT NOT NULL,“ROOM”TEXT NOT NULL)“);

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...