1

在我的应用程序中,我在表格视图中显示来自数据库的数据。我的要求是我必须从数据库中检索将在当前月份下降的数据。我已经编写了查询,但它是 0。实际上我有 1以今天的日期在数据库中输入,所以我的查询应该返回该数据,但它显示为 0。请帮助我。提前致谢。

我的查询如下:

public String addgroupincome(String grp) throws SQLException
{   
    long sum=0; 
    Cursor cursor1 = db.rawQuery(
             "SELECT SUM("+(KEY_TOTAL)+") FROM incomexpense WHERE date= Strftime('%Y-%m','now') AND category='Income' AND groups='"+grp+"'",null);
     if(cursor1.moveToFirst())
     {
       sum = cursor1.getLong(0);
     }
     cursor1.close();   
     String housetotal=String.valueOf((long)sum);    
     return housetotal; 
}

我得到了这个总数并显示在表格布局的文本视图中..

final  String houtotal=db.addgroupincome(group1);  
     housetotal.setText(houtotal);
4

3 回答 3

0
if (cursor.moveToNext()) {
  cursor.moveToFirst();
  while (cursor.isAfterLast() == false) {
    Log.i(ID, cursor.getInt(0) + "");
    cursor.moveToNext();
  }
  cursor.close();
} else {
  cursor.close();
  return null;
}

试试这个方法......

于 2012-08-01T06:00:56.090 回答
0

为什么不尝试在查询中给出表的列名..它可能适合您..指定要检索的列..

于 2012-08-01T05:48:31.010 回答
0

查询很可能没有错,但是您将查询结果传递给 ListView 的方式。你能展示一下你是怎么做的吗?也许我能帮上忙。

或者你可以看看这里这里


public int getCount() {
    DBHelper dbHelper = DBHelper.getDBAdapterInstance(this);
    int count = 0;

    try {
        dbHelper.openDataBase();

        String query = "select count(1) from t_model where upper(brandName) = upper('"
                + selectedBrand + "') order by modelName ASC";

        Cursor cursor = dbHelper.selectRecordsCursor(query, null);

        if (cursor.moveToFirst()) {
            count = cursor.getInt(0);
        }

        cursor.close();
        cursor = null;

    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        dbHelper.close();
    }

    return count;
}

对于 TextView 应该像

TextView tvCount = (TextView) findViewById(R.id.tvCount);
tvCount.setText("Count : " + getCount);

如果您在调试查询时遇到问题。试试http://sqlitebrowser.sourceforge.net/http://www.sqliteexpert.com/

于 2012-08-01T04:55:00.393 回答