SQlite:数据仅在 table 中第一次插入,第二次不插入

SQlite: Data is only get inserted first time in table and second time it does not

我们在 table 中插入的数据第一次被插入,而第二次(如第二次输入)却没有,如果您当时无法阅读和理解我的代码,可能是什么原因我们可以讨论原因

package com.example.sarahn.locationactivity;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;


public class HelperAdaptor extends SQLiteOpenHelper{
public static final String DATABASE_NAME = "mmhdatabase";
public static final String TABLE_NAME3 = "timetable";
public static final int DATABASE_VERSION = 2;
public static final String NAME1 = "_timeprofilename";
public static final String TIME_PROFILE = "selecteddtimeprofile";
public static final String START_HOUR = "starthour";
public static final String END_HOUR = "endhour";
public static final String START_MINUTE = "startmin";
public static final String END_MINUTE = "endmin";
public static final String CREATE_TABLE3 = " CREATE TABLE " +TABLE_NAME3+  "   ("+NAME1+ " STRING PRIMARY KEY, " +START_HOUR+ " INTEGER, " +END_HOUR+ "     INTEGER," +START_MINUTE+ " INTEGER, " +END_MINUTE+ " INTEGER, "            +TIME_PROFILE+ " INTEGER); "  ;
public static final String DROP_TABLE1 = " DROP TABLE IF EXISTS "            +TABLE_NAME3;


public Context context;

public HelperAdaptor (Context context) {
    super(context,DATABASE_NAME, null, DATABASE_VERSION);
    this.context= context;

}


@Override
public void onCreate(SQLiteDatabase db) {


    try {

        db.execSQL(CREATE_TABLE3);

    }catch (SQLException e)
    {

    }

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    try {

        db.execSQL(DROP_TABLE1);


        onCreate(db);


    }catch (SQLException e)
    {

    }

}


public boolean insertdatatime(String nametime, int hrstart , int hrend ,     int minstart, int minend, int pr) {

    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues1 = new ContentValues();
    contentValues1.put(this.NAME1, nametime);
    contentValues1.put(this.START_HOUR, hrstart);
    contentValues1.put(this.END_HOUR, hrend);
    contentValues1.put(this.START_MINUTE, minstart);
    contentValues1.put(this.END_MINUTE, minend);
    contentValues1.put(this.TIME_PROFILE, pr);

    long id = db.insert(this.TABLE_NAME3, null, contentValues1);
    if(id == -1)
    {
        return false;
    }
    else {
        return true;
    }

}


}

可能是这个问题?

public static final String CREATE_TABLE3 = " CREATE TABLE " +TABLE_NAME3+  "   ("+NAME1+ " STRING PRIMARY KEY, " +START_HOUR+ " INTEGER, " +END_HOUR+ "     INTEGER," +START_MINUTE+ " INTEGER, " +END_MINUTE+ " INTEGER, "            +TIME_PROFILE+ " INTEGER); "  ;

进入

public static final String CREATE_TABLE3 = " CREATE TABLE IF NOT EXISTS " +TABLE_NAME3+  "   ("+NAME1+ " STRING PRIMARY KEY, " +START_HOUR+ " INTEGER, " +END_HOUR+ "     INTEGER," +START_MINUTE+ " INTEGER, " +END_MINUTE+ " INTEGER, "            +TIME_PROFILE+ " INTEGER); "  ;

It is usually an error to attempt to create a new table in a database that already contains a table, index or view of the same name. However, if the "IF NOT EXISTS" clause is specified as part of the CREATE TABLE statement and a table or view of the same name already exists, the CREATE TABLE command simply has no effect (and no error message is returned). An error is still returned if the table cannot be created because of an existing index, even if the "IF NOT EXISTS" clause is specified.