任何人都可以帮我尝试按降序检索数据并以相反的顺序在 textview 中显示它,因为最新的条目将首先显示?
这个查询在mysql中是正确的
客户是第一个表,历史表有客户的历史数据
应用程序工作正常,但不幸的是,当我尝试按降序获取数据时,它已关闭。
即使我只尝试了一个“成本”列仍然是应用程序,不幸的是它被关闭了。
public StringBuilder getData(String custname)
{
String query="select h.lsd , h.work,h.cost from "+c_tablename+" c, "+h_tablename+" h where name='"+custname+"' and c.bike_number=h.bike_number ORDER BY lsd DESC";
SQLiteDatabase sqLiteDatabase=this.getReadableDatabase();
Cursor cursor=sqLiteDatabase.rawQuery(query,null,lsd+"DESC");
StringBuilder stringBuilder =new StringBuilder();
cursor.moveToFirst();
if ( cursor !=null )// cursor!=null error -- android.database.CursorIndexOutOfBoundsException: Index 0 requested,
{
do {
//cursor.moveToFirst();
String lsd=cursor.getString(cursor.getColumnIndex("lsd"));
stringBuilder.append("Date:"+lsd+"\n");
String lwd=cursor.getString(cursor.getColumnIndex("work"));
stringBuilder.append("Work:"+lwd+"\n");
String cost=cursor.getString(cursor.getColumnIndex("cost"));
stringBuilder.append("Cost:"+cost");
}while (cursor.moveToNext());
cursor.close();
}
return stringBuilder;
}
在上面的代码中查询正确执行直到
String query="select h.lsd, h.work,h.cost from "+c_tablename+"c, "+h_tablename+"h where name='"+custname+"' and c.bike_number=h.bike_number";
并将数据显示为第一个条目第一个和最后一个条目最后
但是当我通过 lsd desc 放置 order by clause order 时,不幸的是应用程序关闭了。
String query="select h.lsd , h.work,h.cost from "+c_tablename+" c, "+h_tablename+" h where name='"+custname+"' and c.bike_number=h.bike_number ORDER BY lsd DESC";
01-12 23:57:16.599 4046-4059/? W/SQLiteConnectionPool:数据库“+data+user+0+com_google_android_gms+databases+metrics_db”的 SQLiteConnection 对象被泄露!请修复您的应用程序以正确结束正在进行的事务并在不再需要时关闭数据库。
最佳答案
你遇到这个错误是因为你的表中可能没有数据所以你必须检查是否有任何数据?
试试这个。
if ( cursor !=null && cursor.getCount()>0){
//do your stuff
}
您必须指定特定的列,因为两个表中可能都有 lsd
列,因此在编写查询时要具体化
试试这个
String query="select h.lsd , h.work,h.cost from "+c_tablename+" c, "+h_tablename+" h where name='"+custname+"' and c.bike_number=h.bike_number ORDER BY h.lsd DESC";
关于android - 如何按desc顺序从sqlite中检索数据并在textview中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41620760/