私はこのように定義されたテーブルを持っています
String currencyTableQueryString = "create table if not exists "
+ CURRENCY_NAME + " (" + CURRENCY_ROW_ID
+ " integer primary key autoincrement not null,"
+ CURRENCY_USD + " double," + CURRENCY_INR + " double,"
+ CURRENCY_EUR + " double," + CURRENCY_GBP + " double"
+ ");";
JSONからこのテーブルにデータを保存します。例として、私はこのデータを保存しました
CURRENCY_USD = 1.0
CURRENCY_INR = 53.997369
CURRENCY_EUR = 0.764879
CURRENCY_GBP = 0.658136
次のアクティビティでは、DB からこのデータを取得しています
Ccursor = db.query(CURRENCY_NAME, new String[] { CURRENCY_ROW_ID, CURRENCY_USD, CURRENCY_INR,
CURRENCY_EUR, CURRENCY_GBP }, null, null, null, null, null);
フェッチすると、常に間違ったデータが取得されます。私のすべての分野で非常に高い数値が得られます。何が間違っているのかわかりません。(PS私はJavaとAndroidのプログラミングが初めてです)。
これは、上記の数値が挿入されたときのフェッチからの出力です
CURRENCY_USD = 1.072693248E9
CURRENCY_INR = -1.0925335E8
CURRENCY_EUR = -1.80473634E8
CURRENCY_GBP = 9.1173113E7
誰かがここで何がうまくいかないのか教えてもらえますか?
これが私のフェッチカーソルです。
ArrayList<ArrayList<Object>> dataArrays = new ArrayList<ArrayList<Object>>();
Cursor Ccursor;
try {
// ask the database object to create the cursor.
Ccursor = db.query(CURRENCY_NAME, new String[] { CURRENCY_ROW_ID, CURRENCY_USD, CURRENCY_INR,
CURRENCY_EUR, CURRENCY_GBP }, null, null, null, null, null);
// move the cursor's pointer to position zero.
Ccursor.moveToFirst();
// if there is data after the current cursor position, add it
// to the ArrayList.
if (!Ccursor.isAfterLast()) {
do {
ArrayList<Object> dataList = new ArrayList<Object>();
dataList.add(Ccursor.getLong(0));
dataList.add(Ccursor.getDouble(1));
dataList.add(Ccursor.getDouble(2));
dataList.add(Ccursor.getDouble(3));
dataList.add(Ccursor.getDouble(4));
dataArrays.add(dataList);
}
// move the cursor's pointer up one position.
while (Ccursor.moveToNext());
}
Ccursor.close();
} catch (SQLException e) {
Log.e("DB Error in Currency Retreive all", e.toString());
e.printStackTrace();
}