buaa21 / summer2020

软件学院《程序设计实践》2020小学期仓库
40 stars 8 forks source link

Android Studio中listview获取sqlite数据库数据时为什么软件会闪退? #196

Closed yunniw2001 closed 3 years ago

yunniw2001 commented 3 years ago

Cursor cursor=db.query("AccountingRecord",null,null,null,null,null,null); 当执行到这句话的时候就会闪退 日志里面报错: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.simpleaccount/com.example.simpleaccount.HistoryActivity}: android.database.sqlite.SQLiteException: no such table: AccountingRecord (Sqlite code 1 SQLITE_ERROR): , while compiling: SELECT * FROM AccountingRecord, (OS error - 2:No such file or directory) 意思应该是没有找到“AccountingRecord”这张表,可是表名没有打错……

crclz commented 3 years ago

你在调试的时候查询一下sqlite里面有那些表,看看是否存在那张表。获取数据库里面的表: https://www.sqlite.org/faq.html#q7

yunniw2001 commented 3 years ago

你在调试的时候查询一下sqlite里面有那些表,看看是否存在那张表。获取数据库里面的表: https://www.sqlite.org/faq.html#q7

原来如此,在cursor语句前加了一段 String ssql="create table if not exists AccountingRecord(id integer primary key autoincrement,type varchar(20),state varchar(20),income double,date varchar(20))"; db.execSQL(ssql);就可以了,感谢!