【调试】将JSON数据存入数据库时提示E/SQLiteLog(16899): (1) no such table
2014-08-28 19:28
513 查看
一、问题描述
明明数据库中有表,将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<Category> mCategoryList) { SQLiteDatabase db = getWritableDatabase(); // 插入前先清空表内容 db.delete(mTable, null, null); for (int i = 0; i < mCategoryList.size(); i++) { Category mCategory = mCategoryList.get(i); ContentValues mContentValues = new ContentValues(); mContentValues.put("id", mCategory.id); mContentValues.put("pid", mCategory.pid); mContentValues.put("name", mCategory.name); mContentValues.put("xOrder", mCategory.xOrder); /** 返回新添记录的行号,与主键id无关,发生错误返回-1 */ long value = db.insert(mTable, null, mContentValues); } }
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(卸载会清空原来的数据表),而不要直接安装替换。
相关文章推荐
- SQLite3 执行sqlite3_prepare_v2的时候提示“Error:no such table: bookCollect”的原因解析
- 安卓应用程序在真机上调试时无打印信息,提示Unable to open log device ‘/dev/log/main’: No such file or directory在我们使用真机进行An
- Android开发—数据库应用—手动创建(SQLite)数据库--手动创建数据表(table)
- no such table: Z_METADATA ios sqlite 3 问题解析
- Struts2 使用ajax访问action,返回json格式数据,提示error:There is no result type defined for type 'json'
- 用 ajaxFileUpload 出现的问题:has no method 'handleError'、返回json数据提示下载 、一直返回error
- Python webdriver 读取本地csv文件中数据 提示:IOError: [Errno 2] No such file or directory
- 模拟json数据动态数据库遍历到table表格里
- sqlite 报 no such table 错误
- Android-70-SQLite出错:no such table: XXXTbl
- 通过servlet从气象局接口获取到天气预报的json数据,并解析得到的json数据存入数据库(案例)
- Django --- no such table: django_admin_log
- 没有调试日志的问题 Unable to open log device ‘/dev/log/main’: No such file or directory
- 安卓调试时Unable to open log device ‘/dev/log/main’: No such file or directory
- android.database.sqlite.SQLiteException: no such table: info: , while compiling: insert into info(na
- sqlite 报 no such table 错误
- 真机调试时,遇到Unable to open log device ‘/dev/log/main’: No such file or directory
- 用 ajaxFileUpload 出现的问题:has no method 'handleError'、返回json数据提示下载
- java使用Sqlite 出现类似java.sql.SQLException: no such table: employee错误
- JAVA 根据URL获取JSON数据,并解析后存入数据库