android中的数据库检索

时间:2012-08-01 04:34:55

标签: android database

在我的应用程序中,我在表视图中显示来自数据库的数据。我的要求是从数据库中我必须检索将在当前月份的数据。我已经编写了查询,但它实际上是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; 
}

我得到了这个总数,并在表格布局的atextview中显示..

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

3 个答案:

答案 0 :(得分:0)

查询最有可能没有错,但是您将查询结果传递给ListView的方式。你能说明你是怎么做到的吗?也许我可以帮忙。

或者您可以查看herehere


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/

答案 1 :(得分:0)

为什么不尝试在查询中提供表格的列名...可能会为您解决..指定要检索的列。

答案 2 :(得分: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;
}

尝试此方法....