在我的应用程序中,我在表视图中显示来自数据库的数据。我的要求是从数据库中我必须检索将在当前月份的数据。我已经编写了查询,但它实际上是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);
答案 0 :(得分: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/
答案 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;
}
尝试此方法....