sqlite错误代码= 1,msg =没有这样的表

Rit*_*itu 2 sqlite android

我使用以下代码,用于创建数据库连接.但是没有创建表.

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.provider.BaseColumns;
import android.widget.TextView;

public class DatabaseHelper extends SQLiteOpenHelper {

    private static final String DATABASE_NAME = "notification.db";
    public static final String Title = "Title";
    public static final String NotificationId = "NotificationId";
    public static final String Subject = "Subject";
    public static final String TABLE = "notification";
    public static final String Flag = "Flag";



    public DatabaseHelper(Context context)
    {
        super(context,DATABASE_NAME,null,1);
        android.util.Log.v("DatabaseHelper","Constructor called");
    }

    public void onCreate(SQLiteDatabase db)
    {
        android.util.Log.v("SQLiteDatabase","SQLiteDatabase create called");
        String sql = "create table notification"  + "( " + BaseColumns._ID
        + " integer primary key autoincrement, "+ NotificationId + " text, " + Title + " text, " + Subject + " text, "+ Flag + " text);"
        ;
        db.execSQL(sql);


    }


}
Run Code Online (Sandbox Code Playgroud)

这是我在其他类中的插入函数

protected void insert(String notificationid,String title, String subject,String flag) {
        // TODO Auto-generated method stub

            eventsData = new DatabaseHelper(this);
            Log.i("insert", "inside insert");
            Log.i(TAG, "insert"+notificationid);
            Log.i(TAG, "insert"+title);
            Log.i(TAG, "insert"+subject);
            Log.i(TAG, "insert"+flag);
            SQLiteDatabase db = eventsData.getWritableDatabase();
            android.util.Log.v("insert","SQLiteDatabase called");
            ContentValues values = new ContentValues();
            android.util.Log.v("insert","ContentValues called");
            values.put(DatabaseHelper.NotificationId, notificationid);
            values.put(DatabaseHelper.Title, title);
            values.put(DatabaseHelper.Subject, subject);
            values.put(DatabaseHelper.Flag, flag);
            android.util.Log.v("insert","after values.put");
            db.insert(DatabaseHelper.TABLE, null, values);
            Log.i("insert", "after insert");

    }
Run Code Online (Sandbox Code Playgroud)

插入数据时我得到错误没有找到这样的表.但是如果我从控制台shell创建表通知,相同的代码工作正常.任何人都可以帮助我.谢谢.

Joe*_*Joe 14

我注意到你没有实现onUpgrade.是否有可能第一次运行此数据库时创建了数据库,但表逻辑未实现?也许尝试通过设置 - >应用程序 - >管理应用程序清除数据.只是一个猜测