开发者社区> 问答> 正文

android报错真的不知道怎么回事

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mymail/com.example.mymail.FeedbackShow}: android.database.sqlite.SQLiteException: no such table: feedbacklist (code 1): , while compiling: SELECT _id, fcontent, fstar FROM feedbacklist ORDER BY _id。。

关键代码如下

 public DbHelper(Context context) {
 this(context,DATANAME, VERSION);
 // TODO Auto-generated constructor stub
 }
 @Override
 public void onCreate(SQLiteDatabase db) {
 // TODO Auto-generated method stub
 System.out.println("create a Database");
 db.execSQL("create table contantslist(_id INTEGER PRIMARY KEY AUTOINCREMENT,username varchar(20),address varchar(20))");
 db.execSQL("create table feedbacklist(_id INTEGER PRIMARY KEY AUTOINCREMENT,fcontent varchar(250),fstar float(10))");
 }
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub
     onCreate(db); 
}
、、、、、、、、


DbHelper dbh=new DbHelper(FeedbackShow.this);
 db=dbh.getReadableDatabase();
cursor=db.query("feedbacklist",new String[]{"_id","fcontent","fstar"},null, null, null, null,"_id");

运行游标之前还可以,加上游标语句之后就不行,不知道如何是好了

展开
收起
爵霸 2016-06-20 09:33:26 1807 0
1 条回答
写回答
取消 提交回答
  • 把VERSION改高一个版本试试,可能是代码编写顺序与程序运行的先后问题引起,数据库没创建。
    可能的原因是

    db.execSQL("create table contantslist(_id INTEGER PRIMARY KEY AUTOINCREMENT,username varchar(20),address varchar(20))");
     db.execSQL("create table feedbacklist(_id INTEGER PRIMARY KEY AUTOINCREMENT,fcontent varchar(250),fstar float(10))");

    上面这两条SQL是分两次写的,写完一条后运行了,然后又补上一个create table feedbacklist.。表结构变了,但版本version没有调高

    2019-07-17 19:43:39
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载