我有一个JSON数组,其中包含许多记录。我想将这些对象中的字符串与我的SQLite数据库中的类似(我知道它具有相同的值)记录进行比较。但是,当我循环表时,每个行值都有第一个行值。
将记录插入数据库>>它返回不同的值
ArrayList<String> fieldsNameTasse = new ArrayList<String>();
ArrayList<String> fieldsValueTasse= new ArrayList<String>();
for (int i = 0; i < pagamenti.length(); i++) {
JSONObject row = pagamenti.getJSONObject(i); /** LOOP OGGETTI */
String fattura = row.getString("Fattura");
String descrizione = row.getString("Descrizione");
String scadenza = row.getString("Data Scadenza");
String importo = row.getString("Importo");
String stato = row.getString("Stato Pagamento");
// FATURA SHOW ALL DIFFRERENtS VALUE CORRECTLY
fieldsNameTasse.add("fattura");
fieldsValueTasse.add(fattura);
Toast.makeText(getContext(), fattura.toString(), Toast.LENGTH_LONG).show();
fieldsNameTasse.add("descrizione");
fieldsValueTasse.add(descrizione);
fieldsNameTasse.add("scadenza");
fieldsValueTasse.add(scadenza);
fieldsNameTasse.add("importo");
fieldsValueTasse.add(importo);
fieldsNameTasse.add("stato");
fieldsValueTasse.add(stato);
DBmanager.insert("TasseIncoming", fieldsNameTasse, fieldsValueTasse);
}
检查数据库行值<<它始终返回第一个值
/** SHOW ALWAYS THE SAME VALUE*/
int counter = 0;
Cursor cursor = DBmanager.readAll("TasseIncoming");
while(cursor.moveToNext()) {
String ffattura = cursor.getString(cursor.getColumnIndex("fattura"));
counter++;
Toast.makeText(getContext(), ffattura+" - "+counter, Toast.LENGTH_LONG).show();
}
1条答案
按热度按时间lbsnaicq1#
每次循环时,您只是将值添加到那些
ArrayList
中已有的内容的末尾。因此有许多重复的列名,每个列名具有不同的值。以下是一些快速测试:指示当一列在
INSERT
中多次包含时,仅使用第一个相应的值。因此,只能从循环的第一次迭代中获得值。简单的解决办法是将这些变量定义移到循环中,这样每次插入时都会有一组新的列和值: