同じ を持つ行のすべての値を 1 つのテーブルで検索し、name
それらを別のテーブルに配置しようとしています。
私は自分のアプリケーションの別の部分でこれを成功させ、このコードを作業コードの後にモデル化しましたが、何らかの理由で機能しません。テーブルからテーブルへ移動する値は 1 つだけです。
取得元のテーブルにDATABASE_FAV_EQUIP_TABLE
複数の行があることを確認しました。
機能しないコードは次のとおりです。
//takes all equip data from saved equip set, and puts into equip table
public String AddSavedEquipToEquipTable(String name) {
// TODO Auto-generated method stub
String[] columns = new String[]{KEY_EQUIP, KEY_FAVNAME};
ContentValues cv = new ContentValues();
Cursor c = ourDatabase.query(DATABASE_FAV_EQUIP_TABLE, columns, KEY_FAVNAME + "='" + name + "'", null, null, null, null);
if (c == null){
return null;
}
else if(c != null && c.moveToFirst()) {
do {
int iEquip = c.getColumnIndex(KEY_EQUIP);
String equipment = c.getString(iEquip);
cv.put(KEY_EQUIP, equipment);
ourDatabase.insert(DATABASE_EQUIP_TABLE, null, cv);
} while (c.moveToNext() && KEY_FAVNAME == name);
}
return null;
}
私のアプリケーションの別の部分で機能しているコードは次のとおりです。
//takes all rows in chest table and puts them into the chosen equipment database
public String AddToEquipmentDBFromChest(String equip) {
// TODO Auto-generated method stub
String[] columns = new String[]{KEY_REPS, KEY_EXERCISE, KEY_TIMETYPE};
ContentValues cv = new ContentValues();
Cursor c = ourDatabase.query(DATABASE_CHESTTABLE, columns, KEY_EQUIP + "='" + equip + "'", null, null, null, null);
if (c == null){
return null;
}
else if(c != null && c.moveToFirst()) {
do {
int iReps = c.getColumnIndex(KEY_REPS);
int iExercise = c.getColumnIndex(KEY_EXERCISE);
int iTimeType = c.getColumnIndex(KEY_TIMETYPE);
String reps = c.getString(iReps);
String exercise = c.getString(iExercise);
String time = c.getString(iTimeType);
cv.put(KEY_REPS, reps);
cv.put(KEY_EXERCISE, exercise);
cv.put(KEY_TIMETYPE, time);
ourDatabase.insert(DATABASE_CHOSEN_EQUIP_TABLE, null, cv);
} while (c.moveToNext() && KEY_EQUIP == equip);
}
return null;
}
私はこれを何度も繰り返してきましたが、何かが欠けているに違いありません。