Android SQLite Column Sum



我无法获取SQLite列的总和。该应用程序不断崩溃。任何帮助将不胜感激,谢谢=)。这是我在数据库助手和主要活动中的代码:

public class DatabaseOperator {
private DataManager dataManager;
...
public int getTotalExpenses()
{
SQLiteDatabase database = dataManager.getReadableDatabase();
Cursor cursor = database.rawQuery("SELECT SUM(" + Integer.valueOf(Expenses.C_TOTAL_PRICE) + ") FROM " + Expenses.TABLE, null);
cursor.moveToFirst();
int i = cursor.getInt(0);
cursor.close();
return i;
}
//MainActivity.class
TextView textTotalExpenses;
int totalExpenses;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DatabaseOperator databaseOperator = new DatabaseOperator(this);
textTotalExpenses = (TextView) findViewById(R.id.textTotalExpenses);
totalExpenses = databaseOperator.getTotalExpenses();
textTotalExpenses.setText(totalExpenses);

03-26 09:31:23.483 5818-5818/com.example.everydaybudgeting20 E/Android运行时:致命 异常:主要 流程: com.example.everydaybudgeting20, PID: 5818 java.lang.RuntimeException: 无法启动活动 ComponentInfo{com.example.everydaybudgeting20/com.example.everydaybudgeting20.MainActivity}: java.lang.NumberFormatException: 对于输入字符串:"totalPrice" at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 由以下原因引起:java.lang.NumberFormatException:对于输入字符串:"totalPrice" at java.lang.Integer.parseInt(Integer.java:521) at java.lang.Integer.valueOf(Integer.java:611) at com.example.everydaybudgeting20.DatabaseOperator.getTotalExpenses(DatabaseOperator.java:229) at com.example.everydaybudgeting20.MainActivity.onCreate(MainActivity.java:76) at android.app.Activity.performCreate(Activity.java:6679) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

只是自己修复了它。感谢您的帮助!

public int getTotalExpenses()
{
int total = 0;
SQLiteDatabase database = dataManager.getReadableDatabase();
Cursor cursor = database.rawQuery("SELECT SUM("+ Expenses.C_TOTAL_PRICE + ") FROM " + Expenses.TABLE, null);
if (cursor.moveToFirst())
{
total = cursor.getInt(0);
}
while (cursor.moveToNext());
return total;
}

最新更新