作者:小雨闹不住 | 来源:互联网 | 2023-05-18 23:32
一、问题描述明明数据库中有表,将JSON数据存入数据库时仍提示找不到表,让人很是郁闷,仔细分析以后才发现原来是自己粗心,拿出来糗一下。code1:HttpGetrequest
一、问题描述
明明数据库中有表,将JSON数据存入数据库时仍提示找不到表,让人很是郁闷,仔细分析以后才发现原来是自己粗心,拿出来糗一下。
code1:
HttpGet requestGet = new HttpGet(URL_GET_CATEGORY);
httpRespOnse= new DefaultHttpClient().execute(requestGet);
jsOnResults= EntityUtils.toString(httpResponse.getEntity());
JSONArray jsOnArray= new JSONArray(jsonResults);
// 存入数据库
InspectorApplication.myDataBase.insertCategoryList(TABLE_CATEGORY_CSBJ,getCategoryListFromJSONArray(jsonArray));
code2:
/** 向数据库Table中存入数据 */
public void insertCategoryList(String mTable,
ArrayList mCategoryList) {
SQLiteDatabase db = getWritableDatabase();
// 插入前先清空表内容
db.delete(mTable, null, null);
for (int i = 0; i
assets/databases:
其中:
利用code1、code2试图将JSON数据存入表T_Category_CSBJ时提示错误:E/SQLiteLog(16899): (1) no such table,具体error如图
二、原因分析
1、一般找不到表有两种情况:一是没有这张表,二是指向这张表的路径错误。
大家看到了,我“明明”已经新建了表T_Category_CSBJ,代码也没有问题,为什么依然提示错误呢?其实,你只看到LocalCase_new.db中确实有这张表,而忘记对其进行重新打包了,而我们存储的位置恰恰是zip中那张表。
2、先前安装的APP中的数据没有被清理干净。
三、解决办法
1、保证zip中一定要有这张表;
2、调试安装前先卸载原来的APP(卸载会清空原来的数据表),而不要直接安装替换。