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はエラーを返します)。

また、関数は、returnキーを押すとすぐに実行を停止します。したがって、whileループが開始すると、すぐに再び停止します。また、while(true)ループは実際には良い習慣ではないことにも注意してください。基本的に、あなたは無限のループを作成し、それから再び抜け出すためにいくつかのトリックを入れます。

子テーブルの1つの行とすべての行を削除するには、2つのクエリを使用することをお勧めします。whereステートメントに内部クエリを使用しながら、最初に子テーブルの削除クエリを実行します。次に、親テーブルをもう一度削除します。

于 2013-03-09T23:47:09.267 に答える