[英]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.