Sqlite android更新查询无法正常工作

时间:2014-05-28 07:14:30

标签: android sqlite android-sqlite

这里是我的更新数据库表方法

public void insertionchallanval(ArrayList<String> itemcode,ArrayList<String>   item,ArrayList<String> quantity,
        ArrayList<String> date,ArrayList<String> status,ArrayList<String> id)
{
    ContentValues insertValues = new ContentValues();
    for(int i=0;i<status.size();i++)
    {
        if(!retriveidstatus(id.get(i)))
        {
            insertValues.put("id", id.get(i));
            insertValues.put("itemcode", itemcode.get(i));
            insertValues.put("item", item.get(i));

            insertValues.put("status", status.get(i));
            insertValues.put("date", date.get(i));
            insertValues.put("quantity", quantity.get(i));
            //insertValues.put("category", category.get(i));
            myDataBase.insert("create_challan", null, insertValues);
        }
        else
        {
            insertValues.put("id", id.get(i));
            insertValues.put("itemcode", itemcode.get(i));
            insertValues.put("item", item.get(i));
            insertValues.put("quantity", quantity.get(i));
            insertValues.put("status", status.get(i));
            insertValues.put("date", date.get(i));
            //insertValues.put("category", category.get(i));
            myDataBase.update("create_challan", insertValues, "id="+"'"+id.get(i)+"'",null );


        }  
    }
}

这里是我的检查ID方法

public boolean retriveidstatus(String id)
    {
        Cursor curCalllog = myDataBase.rawQuery("SELECT id FROM  create_challan", null);
         if(curCalllog.moveToNext() && curCalllog != null) {
             while(!curCalllog.isAfterLast())
             {
                 if(id.contains(curCalllog.getString(0)))
                 {
                     return true;
                 }
                 curCalllog.moveToNext();
             }
         }

        return false;
    }

表格结构

id        String
status    String
date      String
challanno String
itemcode  String
item      String
quantity  String

当我调用插入新值的方法然后它工作正常但是当我再次使用新的更新值调用时,更新方法返回0表示没有行影响

请帮我解决这个问题

先谢谢

1 个答案:

答案 0 :(得分:1)

不是检查 _IDs 是否存在,您可以使用类replace()的{​​{1}}方法,如下所示:

SQLiteDatabase

希望它有助于干杯:)