带有while循环的Android DB行delete()

时间:2013-03-09 23:28:44

标签: android sqlite boolean delete-row

我已经拿起这段代码,我正在尝试理解并在我的应用程序中工作它应该从父表中删除一行,并且子表上的任何行也是相关的,我也不完全理解它eclipse在while循环中抛出一个错误,我理解错误,但不知道该人是如何让它工作的

public boolean removeRow(int paramInt, String paramString)
{
  int i = 1;
  if (paramString.equals("nameTable"))
  {
   SQLiteDatabase localSQLiteDatabase1 = this.db;
    String str1 = "name_ref_ID=" + paramInt;
    int j = localSQLiteDatabase1.delete("itemTable", str1, null);
    SQLiteDatabase localSQLiteDatabase2 = this.db;
    String str2 = "names_id=" + paramInt;
    if (localSQLiteDatabase2.delete(paramString, str2, null) <= 0);
  }
  while (true)
  {
    return i;// shows errror here as its not returning a bool
    i = 0;
    continue;
    if (paramString.equals("itemTable"))
    {
      SQLiteDatabase localSQLiteDatabase3 = this.db;
      String str3 = "item_id=" + paramInt;
      if (localSQLiteDatabase3.delete(paramString, str3, null) > 0)
      continue;
      i = 0;
      continue;
    }
    i = 0;
  }
}

我也似乎返回不合适并且会使循环的其余部分不被执行。

1 个答案:

答案 0 :(得分:1)

我不确定代码是如何为你得到它的人工作的,因为他正在返回我是一个INT并且他的函数声明他应该返回一个布尔值(这就是为什么eclipse会给你错误)。

此功能一旦返回就会停止运行。因此,当while循环开始时,它将再次停止。还要记住,一段时间(真实)循环并不是一个好的做法。基本上你创造了一个无限循环,并采取一些技巧来再次突破它。

要删除子表的行和所有行,我建议使用两个查询。首先在子表上删除查询,同时使用Inner query作为where语句。然后在父表上删除另一个。