此问题已在此处有答案:
When does SQLiteOpenHelper onCreate() / onUpgrade() run?(15个回答)
14天前关闭
我有一个数据库,其中有两个表,我想使用。我对第一个表没有问题,但是当我有一个数据库,其中有两个我想要的表时,我在处理第一个表时没有问题,但是当我在第二个表中插入数据时,我得到了“表没有命名的clumn”错误。
这是我的databaseHelper:
public class DatabaseHelper extends SQLiteOpenHelper
{
public static final String TABLE_NAME = "bosors";
public static final String _ID = "_id";
public static final String index = "nindex";
public static final String DATE = "date";
static final String DB_NAME = "brs.DB";
static final int DB_VERSION = 1;
private static final String CREATE_TABLE = "create table " + TABLE_NAME + "(" + _ID
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + index + " TEXT NOT NULL);";
private static final String CREATE_TABLE2 = "create table " + "t67675656072510693" + "(" + _ID
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + DATE + " TEXT NOT NULL);";
@Override
public void onCreate(SQLiteDatabase p1)
{p1.execSQL(CREATE_TABLE);
p1.execSQL(CREATE_TABLE2);
// TODO: Implement this method
}
@Override
public void onUpgrade(SQLiteDatabase p1, int p2, int p3)
{p1.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
p1.execSQL("DROP TABLE IF EXISTS " + "t67675656072510693");
onCreate(p1);
// TODO: Implement this method
}
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
}
这是我的insert:
public void insert(String data) {
ContentValues contentValue = new ContentValues();
contentValue.put(DatabaseHelper.index, data);
database.insert(DatabaseHelper.TABLE_NAME, null, contentValue);
}
从这里,我将数据发送到insert方法:
if(token[i].equals(nmdName.toString())){
dbm.insertH("t"+nmdIndex,date);}
当我向列发送数据时,我得到这个错误:
(1)表t67675656072510693在“INSERT INTO t67675656072510693(date)VALUES(?))"
我试图引入一个单独的DatabaseHelper和DatabaseManager,但我再次遇到了同样的问题。
1条答案
按热度按时间q35jwt9p1#
create sql
是否在onCreate
方法中执行而未记录任何错误。如果已经创建了表,则可能会失败。在这种情况下,您需要删除表或执行更新表SQL语句。