这是我的方法
public int getamount(){
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery("SELECT SUM(buy) FROM " + table_name, null);
c.moveToFirst();
int i = c.getInt(c.getColumnIndex(col_6));
c.close();
return i;
}
这是我的主要活动
public void button_res(View view) {
if (view == findViewById(R.id.textView7)) {
total();
}
}
public void total(){
Integer i = myDb.getamount();
textView7.setText(i);
Toast.makeText(getApplicationContext(),i,Toast.LENGTH_LONG).show();
}
当我点击我的按钮时,它什么都没显示。
答案 0 :(得分:0)
您的查询返回一个名为" SUM(buy)"的列。或类似的东西(确切的名称不保证),因此搜索具有col_6
指定名称的列将不起作用。
您可以强制列具有特定名称:
SELECT SUM(buy) AS xxx FROM ...
或者您可以选择结果的第一列:
int i = c.getInt(0);
但实现此目的的最简单方法是使用隐藏游标管理的helper function:
public int getamount() {
SQLiteDatabase db = this.getReadableDatabase();
return (int)DatabaseUtils.longForQuery(db,
"SELECT SUM(buy) FROM " + table_name, null);
}
答案 1 :(得分:0)
您的方法是错误的:光标中只有一个列,即总和 所以这是错误的:
http
必须是:
int i = c.getInt(c.getColumnIndex(col_6));
答案 2 :(得分:0)
试试这个
public int getamount()
{
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery("SELECT SUM(buy) as amount FROM " + table_name, null);
c.moveToFirst();
int i = c.getInt(c.getColumnIndex("amount"));
c.close();
return i;
}