0

私はこのように定義されたテーブルを持っています

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();
    }
4

1 に答える 1

0

データベースを ddms view data - data からデスクトップにエクスポートし、SqliteBrowser Linkを使用して確認し、挿入したデータが正しいかどうかを確認してから、ID を使用してデータを取得し、確認します。

于 2013-02-26T05:35:04.007 に答える