【问题标题】:Insert and Update Query In Android SQlite在 Android SQlite 中插入和更新查询
【发布时间】:2014-07-17 04:00:38
【问题描述】:

我正在使用以下代码插入和更新表格

int rowsaffected = db.update(MyDatabaseHelperDon.TABLE_CURRENT, values,MyDatabaseHelperDon.VARIABLE_CURRENT + " = " + "\"" + var + "\"",null);

if(rowsaffected == 0) {
        db.insert(MyDatabaseHelperDon.TABLE_CURRENT, null,values);
}

其中 MyDatabaseHelperDon.TABLE_CURRENT 是我的表名,'values' 是我的内容值,MyDatabaseHelperDon.VARIABLE_CURRENT 是列名,'var' 是列中存在的变量。

此代码运行良好。现在为此我需要添加 If Condition like 'if(value != 400)' 如果它满足,那么只有它应该更新或插入。

请指导我如何实现这一目标。

【问题讨论】:

  • 您可以在调用插入/更新函数之前进行检查。请贴出调用insert函数的代码。
  • db.update 将返回整数值,如果值被更新,它将返回 1,否则返回 0,如果为零,我将插入值。插入函数写好了,请检查代码

标签: android sqlite if-statement insert sql-update


【解决方案1】:

如果我正确理解了您的问题,您可以尝试以下方法:

private void insertUpdate ()
{
  // Your Insert / Update code here...
     int rowsaffected = db.update(MyDatabaseHelperDon.TABLE_CURRENT, values,MyDatabaseHelperDon.VARIABLE_CURRENT + " = " + "\"" + var + "\"",null);

     if(rowsaffected == 0) 
     {
        db.insert(MyDatabaseHelperDon.TABLE_CURRENT, null,values);
     }
}

public void callingMethod()
{
    int value = 0;// Initialize here 
    value =    // process this value further based on your logic....
    if (value !=400)
    {
        insertUpdate ();
    }
    else
   {
        // when value is 400
   }

}

【讨论】:

  • 这里的值是列名,如果表中的列值中不存在400,那么我需要更新
  • @user3705553:您可以使用 where 条件进行更新。或者,您可以在调用插入更新方法之前进行选择查询。
  • 也许这个链接可以帮助你更新条件:stackoverflow.com/q/9453651/3492139
  • 如果我使用 where 条件来检查值条件,如果值等于 400,它将返回 0,并且插入查询将再次插入 400 :(
  • 因此考虑在同一查询上编写插入和更新。你能帮我写这个吗
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-29
  • 1970-01-01
  • 2013-08-06
  • 1970-01-01
  • 2018-01-13
相关资源
最近更新 更多