oushishenjingbing
oushishenjingbing
采纳率0%
2015-03-14 10:57 阅读 2.6k

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条回答 默认 最新

  • danielinbiti danielinbiti 2015-03-14 12:03

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

    点赞 1 评论 复制链接分享
  • oyljerry oyljerry 2015-03-14 14:36

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

    点赞 评论 复制链接分享
  • u012216727 大河行脚 2015-03-14 15:05

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

    如果帮助到您,请采纳

    点赞 评论 复制链接分享

相关推荐