我已经拿起这段代码,我正在尝试理解并在我的应用程序中工作它应该从父表中删除一行,并且子表上的任何行也是相关的,我也不完全理解它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;
}
}
我也似乎返回不合适并且会使循环的其余部分不被执行。
答案 0 :(得分:1)
我不确定代码是如何为你得到它的人工作的,因为他正在返回我是一个INT并且他的函数声明他应该返回一个布尔值(这就是为什么eclipse会给你错误)。
此功能一旦返回就会停止运行。因此,当while循环开始时,它将再次停止。还要记住,一段时间(真实)循环并不是一个好的做法。基本上你创造了一个无限循环,并采取一些技巧来再次突破它。
要删除子表的行和所有行,我建议使用两个查询。首先在子表上删除查询,同时使用Inner query作为where语句。然后在父表上删除另一个。