异常无效限制条款-Android

异常无效限制条款-Android,第1张

概述我正在尝试将json对象放在sqlite数据库中privatevoidaddList(Stringinfo){try{JSONObjectreader=newJSONObject(info);StringCOMMAND=reader.getString("COMMAND");StringPARAMS=reader.getString("PARAMS");

我正在尝试将Json对象放在sqlite数据库中

private voID addList(String info){    try {                JsONObject reader=new JsONObject(info);        String COMMAND = reader.getString("COMMAND");        String ParaMS = reader.getString("ParaMS");        int ID = vpictures.InsertList(COMMAND,info);    } catch (Exception e){        if (DEBUG_FLAG)Log.d("Log1 ", "adding Exception :"+ e.getMessage());    }    return;}

Json对象信息看起来像这样

{    "COMMAND":"ADD_NEW",    "ParaMS":{        "deviceid":"1234",        "custID":"41701",        "description":"Ddd",                "colTranType":"ABS",                }}

这是我的小桌子

private static final String table_CREATE = "CREATE table " + table_name + " (ID INTEGER, deviceid TEXT, LTIME INTEGER, LATITUDE REAL,"+        "LONGITUDE REAL, THEPICTURE BLOB, SENT INTEGER, NOTES TEXT, COMMAND TEXT, ParaMS TEXT);";

我正在尝试插入COMMAND和ParaMS.
我的sqlite代码看起来像这样

public int InsertList(String COMMAND, String info){        try {            JsONObject reader = new JsONObject(info);            String param_str = reader.getString("info");            if (_Db == null)                _Db = getWritableDatabase();            if (_LastID == -1)            {                Cursor c = _Db.query(table_name, new String[] {"max(ID)"}, null, null, null, null, COMMAND, param_str);                if (c != null && c.movetoFirst()) {                    _LastID = c.getInt(0);                    c.close();                }                else                    _LastID = 0;                c.close();            }            try {                ContentValues cv = new ContentValues();                cv.put("ID",++_LastID);                cv.put("COMMAND",String.valueOf(COMMAND));                cv.put("ParaMS",ParaMS);                          _Db.insert(table_name, "", cv);            } catch (Exception e){                Log.d("Log2","Error:"+e.getMessage());            }                  } catch (JsONException e1) {                        Log.d("Log2","Error:"+e1.getMessage());        }         return _LastID; }

基本上我从addList函数得到的异常

adding Exception : Exception invalID liMIT clauses

如何考虑将Json对象插入sqlite

解决方法:

这些是query()方法的参数:

Cursor c = _Db.query(        table_name,               // table        new String[] {"max(ID)"}, // columns        null,                     // selection        null,                     // selectionArgs        null,                     // groupBy        null,                     // having        COMMAND,                  // orderBy        param_str);               // limit

orderBy和limit参数没有意义.要在整个表中找到最大的ID,这些参数必须为null.

无论如何,有一个helper function使得从数据库中读取单个数字变得更容易,而不必使用游标进行处理:

long lastID = DatabaseUtils.longForquery(_Db, "SELECT max(ID) FROM "+table_name, null);

并且,如果您已将ID列声明为INTEGER PRIMARY KEY,则该列将自动递增,并且您不必手动设置.

总结

以上是内存溢出为你收集整理的异常无效限制条款-Android全部内容,希望文章能够帮你解决异常无效限制条款-Android所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1120851.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存