1

我想要做的是SUM通过我的内容提供商使用查询。到目前为止,我还不能这样做。

我的内容提供商有一个名为信用评分的列。我正在尝试做的是提取数据并将其加在一起以产生特定人的最终分数,即以 john smith 作为名称的每一行,加上信用评分列中列出的金额。

我找到了一些解决方案,但似乎没有任何效果。我在 stackoverflow 上读到,如果没有无法通过内容解析器执行的原始查询,它就无法完成。

这是使用的代码:

    ContentProviderClient client =  getContentResolver().acquireContentProviderClient(AUTHORITY);
    SQLiteDatabase dbHandle= ((BorrowMeContentProvider)client.getLocalContentProvider()).getDbHandle();
    Cursor cursor = dbHandle.rawQuery("SELECT sum("+BorrowMeTable.COLUMN_CREDIT_SCORE+") FROM "+BorrowMeTable.DATABASE_TABLE +" WHERE "+BorrowMeTable.COLUMN_NAME+"= \""+ nameOfThePersonString+"\"", null);
     cursor.moveToFirst();
     int cnt =  cursor.getInt(0);
     cursor.close();
     cursor.deactivate();
     client.release();

使用此方法时出现错误,我认为这与getDbHandle()- 此方法必须在我的内容提供程序中创建(因为它不存在)但它返回 null。

这是我得到的错误:

03-29 16:16:24.369: E/AndroidRuntime(28802): FATAL EXCEPTION: main
03-29 16:16:24.369: E/AndroidRuntime(28802): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fthatnoise.borrow.me/com.fthatnoise.borrow.me.PersonRecord}: java.lang.NullPointerException
03-29 16:16:24.369: E/AndroidRuntime(28802):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2088)
03-29 16:16:24.369: E/AndroidRuntime(28802):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2113)
03-29 16:16:24.369: E/AndroidRuntime(28802):    at android.app.ActivityThread.access$700(ActivityThread.java:139)
03-29 16:16:24.369: E/AndroidRuntime(28802):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1224)
03-29 16:16:24.369: E/AndroidRuntime(28802):    at android.os.Handler.dispatchMessage(Handler.java:99)
03-29 16:16:24.369: E/AndroidRuntime(28802):    at android.os.Looper.loop(Looper.java:137)
03-29 16:16:24.369: E/AndroidRuntime(28802):    at android.app.ActivityThread.main(ActivityThread.java:4918)
03-29 16:16:24.369: E/AndroidRuntime(28802):    at java.lang.reflect.Method.invokeNative(Native Method)
03-29 16:16:24.369: E/AndroidRuntime(28802):    at java.lang.reflect.Method.invoke(Method.java:511)
03-29 16:16:24.369: E/AndroidRuntime(28802):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
03-29 16:16:24.369: E/AndroidRuntime(28802):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
03-29 16:16:24.369: E/AndroidRuntime(28802):    at dalvik.system.NativeStart.main(Native Method)
03-29 16:16:24.369: E/AndroidRuntime(28802): Caused by: java.lang.NullPointerException
03-29 16:16:24.369: E/AndroidRuntime(28802):    at com.fthatnoise.borrow.me.PersonRecord.fillData(PersonRecord.java:90)
03-29 16:16:24.369: E/AndroidRuntime(28802):    at com.fthatnoise.borrow.me.PersonRecord.onCreate(PersonRecord.java:52)
03-29 16:16:24.369: E/AndroidRuntime(28802):    at android.app.Activity.performCreate(Activity.java:5048)
03-29 16:16:24.369: E/AndroidRuntime(28802):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
03-29 16:16:24.369: E/AndroidRuntime(28802):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2052)

我是在正确的轨道上还是远离基地?

4

1 回答 1

0

在查询中的 FROM 之前添加 AS creditcardtotal

于 2013-03-29T20:37:29.793 回答