簡體   English   中英

sqlite查詢不在android中執行

[英]sqlite query not executing in android

我有以下查詢數據庫的方法

public String getCurrentMonthTotal() {
        String totalSum = "0.00";       
        Calendar cal = Calendar.getInstance();      
        int currentMonth = cal.get(Calendar.MONTH);
        Cursor cursor = database.query("expenses",
                new String[] { "SUM(\"amount\")" }, "expensemonth="
                        + currentMonth, null, null, null, null);
        if (cursor.moveToFirst()) {
            while (!cursor.isAfterLast()) {
                totalSum = cursor.getString(cursor.getColumnIndex("amount"));
                // do what ever you want here
                cursor.moveToNext();
            }
        }
        cursor.close();
        return totalSum;
    }

但是,達到此點時,應用程序崩潰。 有什么想法嗎?

Logcat跟蹤

12-17 02:46:37.893: E/AndroidRuntime(837):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
12-17 02:46:37.893: E/AndroidRuntime(837):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
12-17 02:46:37.893: E/AndroidRuntime(837):  at android.app.ActivityThread.access$600(ActivityThread.java:130)
12-17 02:46:37.893: E/AndroidRuntime(837):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
12-17 02:46:37.893: E/AndroidRuntime(837):  at android.os.Handler.dispatchMessage(Handler.java:99)
12-17 02:46:37.893: E/AndroidRuntime(837):  at android.os.Looper.loop(Looper.java:137)
12-17 02:46:37.893: E/AndroidRuntime(837):  at android.app.ActivityThread.main(ActivityThread.java:4745)
12-17 02:46:37.893: E/AndroidRuntime(837):  at java.lang.reflect.Method.invokeNative(Native Method)
12-17 02:46:37.893: E/AndroidRuntime(837):  at java.lang.reflect.Method.invoke(Method.java:511)
12-17 02:46:37.893: E/AndroidRuntime(837):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
12-17 02:46:37.893: E/AndroidRuntime(837):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
12-17 02:46:37.893: E/AndroidRuntime(837):  at dalvik.system.NativeStart.main(Native Method)
12-17 02:46:37.893: E/AndroidRuntime(837): Caused by: java.lang.NullPointerException
12-17 02:46:37.893: E/AndroidRuntime(837):  at com.technowizsol.easyexpensemanager.ExpenseList.onCreate(ExpenseList.java:21)
12-17 02:46:37.893: E/AndroidRuntime(837):  at android.app.Activity.performCreate(Activity.java:5008)
12-17 02:46:37.893: E/AndroidRuntime(837):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
12-17 02:46:37.893: E/AndroidRuntime(837):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
12-17 02:46:37.893: E/AndroidRuntime(837):  ... 11 more
12-17 02:49:03.202: E/Trace(885): error opening trace file: No such file or directory (2)
12-17 02:49:04.003: D/gralloc_goldfish(885): Emulator without GPU emulation detected.

沒有LogCat錯誤,我們只需要猜測...但這感覺不對:

totalSum = cursor.getString(cursor.getColumnIndex("amount"));

我不認為Sum列的名稱為“ amount”,並且您不需要為一行循環。 嘗試:

if (cursor.moveToFirst()) {
    totalSum = cursor.getString(0); // You can use getInt()
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM