SQLite在查询数据库运行崩溃

这是我创建的数据库
public class BlackNumberOpenHelper extends SQLiteOpenHelper {
private static final String TAG = "BlackNumberOpenHelper";
/**
* @param context
/
public BlackNumberOpenHelper(Context context) {
super(context, "blacknumber.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table blacknumber (_id integer primary key autoincrement,number varchar(20),mode varchar(2))");
Log.i(TAG,"成功创建表");
}}
以下是我操作数据库的类
public class BlackNumberDao {
private Context context;
private BlackNumberOpenHelper helper;
/
*
* 构造方法
* @param context
*/
public BlackNumberDao(Context context) {
this.context = context;
helper = new BlackNumberOpenHelper(context);
}
public List findAll() {
List result = new ArrayList();
SQLiteDatabase db = helper.getWritableDatabase();
Cursor cursor = db.query("blacknumber",new String[]{"number","mode"},null,null,null,null,null);
while (cursor.moveToNext()) {
BlackNumberInfo info = new BlackNumberInfo();
String number = cursor.getString(0);
String mode = cursor.getString(1);
info.setMode(mode);
info.setNumber(number);
result.add(info);
}
cursor.close();
db.close();
return result;
}}
为什么一执行查询全部的操作就报android.database.sqlite.SQLiteException: no such table: blacknumber (code 1): , while compiling: SELECT number, mode FROM blacknumber。希望大家帮我看看到底我哪里错了啊。首先先谢谢大家了

3个回答

1、看看数据库表是否已经成功创建,有没有打印出”成功创建表“的日志
2、是否运行后又删除过数据库表,如果删除过,在没有更改过version值的情况下,是不再执行oncreate,而是执行onUpgrade的

这个表对吗。可以用sqlite客户端直接用SQL查询试试。

SQLiteDatabase db = helper.getWritableDatabase();
我记得我在写android时,这个getWritetableDatabase()括号里要有你数据库文件的路径的,有原因:
如果你有几个数据库文件,它没办法自动识别是哪个数据库;

如果帮助到您,请采纳

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!