0

我已经拿起了我正在尝试理解并在我的应用程序中工作的这段代码,它应该从父表中删除一行,而子表上的任何行也与之相关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;
  }
}

对我来说,返回似乎不合适,并且会阻止执行循环的其余部分。

4

1 回答 1

1

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

此外,该函数将在返回后立即停止运行。因此,当 while 循环开始时,它将立即停止。还要记住,while(true) 循环并不是很好的做法。基本上,您创建了一个无限循环并使用一些技巧再次打破它。

要删除子表的一行和所有行,我建议使用两个查询。首先对子表执行删除查询,同时对 where 语句使用内部查询。然后在您的父表上再次删除。

于 2013-03-09T23:47:09.267 回答