当我尝试访问一个表时出现此错误:
02-19 16:46:01.677:E / AndroidRuntime(13159):android.database.sqlite.SQLiteException:no such table:notes:INSERT INTO notes(user,text)VALUES('john','testingvalue' )
但我创造了这张桌子!我在数据库中有两个表('users'和'notes'),我以相同的方式访问它们,但是当我尝试在表'notes'中插入一个值时,我有这个错误。
这就是代码:
package com.loopr;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class SQL extends SQLiteOpenHelper {
String createUserTable = "CREATE TABLE users (name TEXT)";
String createNotesTable = "CREATE TABLE notes (user TEXT, text TEXT)";
public SQL(Context context, String name, CursorFactory factory, int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(createNotesTable);
db.execSQL(createUserTable);
}
@Override
public void onUpgrade(SQLiteDatabase db, int before, int after) {
//Nothing at the moment
}
}
我该怎么办?感谢。
答案 0 :(得分:0)
尝试更改int version
并将其放入onUpgrade
可覆盖的方法中:
// Drop the old table.
db.execSQL("DROP TABLE IF EXISTS notes");
// Create a new one.
onCreate(db);
答案 1 :(得分:0)
你能做什么?学习在Android上调试。阅读this link处的资料。了解如何使用DDMS的文件资源管理器从模拟器中提取数据库。获得像SQLite Manager(firefox)这样的工具来查看这些数据库 - 这对我帮助很大。此外,您可以使用SQLite Manager在您的数据库上执行原始sql语句,允许您同时制作SQL并进行测试。