0

SQLitemanager(Android用SQL DBアプリ)で次のクエリを実行します。

SELECT * FROM fahrer, fahrzeuge, nutzungsarten, fahrtenbuch WHERE fahrtenbuch.nutzungsart_id = nutzungsarten._id AND fahrtenbuch.fahrzeuge_id = fahrzeuge._id AND fahrtenbuch.fahrer_id = fahrer._id ORDER BY SUBSTR(fahrtenbuch.startdatum,7,4), SUBSTR(fahrtenbuch.startdatum,4,2), SUBSTR(fahrtenbuch.startdatum,1,2) ASC

返品された注文は期待どおりです。日付はdd.mm.yyyyで正しくソートされています。

しかし、DB-Helperクラスでクエリを実行すると、順序は同じではありません。DB-Helperクラスの場合:

final String MY_QUERY = "SELECT * FROM fahrer, fahrzeuge, nutzungsarten, fahrtenbuch WHERE fahrtenbuch.nutzungsart_id = nutzungsarten._id AND fahrtenbuch.fahrzeuge_id = fahrzeuge._id AND fahrtenbuch.fahrer_id = fahrer._id ORDER BY SUBSTR(fahrtenbuch.startdatum,7,4), SUBSTR(fahrtenbuch.startdatum,4,2), SUBSTR(fahrtenbuch.startdatum,1,2) ASC";
return mDb.rawQuery(MY_QUERY, null);

私の活動では:


Cursor curCSV = mDbHelper.fetchAllFahrtenbuchASC();
curCSV.moveToFirst();
while(curCSV.moveToNext()) 
{
   System.out.println("Date of entry: " +curCSV.getString(18));
} 

curCSV.close();

なぜこれが機能しないのか誰かが知っていますか?

4

1 に答える 1

1

このコード:

curCSV.moveToFirst();
while(curCSV.moveToNext()) ...

最初のレコードをスキップします。代わりに使用してください:

if (curCSV.moveToFirst())
    do {
        ...
    } while (curCSV.moveToNext());
于 2012-11-01T09:04:57.473 に答える