Java 为什么';它没有得到任何数据吗?
主要内容: 第二项活动:Java 为什么';它没有得到任何数据吗?,java,android,sql,Java,Android,Sql,主要内容: 第二项活动: public Cursor getSpecificData(int id){ SQLiteDatabase db = this. getWritableDatabase(); Cursor data = db.rawQuery("SELECT * FROM "+ TableName + " WHERE ID ="+id, null); return data; } 嗨!我是SQL的初学者,我不知道我做错了什么。我有一个包含多列的数据库,我需要从
public Cursor getSpecificData(int id){
SQLiteDatabase db = this. getWritableDatabase();
Cursor data = db.rawQuery("SELECT * FROM "+ TableName + " WHERE ID ="+id, null);
return data;
}
嗨!我是SQL的初学者,我不知道我做错了什么。我有一个包含多列的数据库,我需要从中获取一些数据,这样我就可以将这些值放在一些文本视图中。问题是,我需要的数据必须是一行,具有ListView中某个项的特定id(是的,我现在谈到了行id,我解决了这个问题)。你知道为什么它不工作吗?你的数据库助手
Intent intent = getIntent();
int id =intent.getIntExtra("Id",0);
Cursor data = mDatabase.getSpecificData(id);
在“活动”中创建一个setViewsfunction
public Cursor getSpecificData(int id){
SQLiteDatabase db = this.getWritableDatabase();
String query = "SELECT * FROM "+ TableName + " WHERE ID = "+id;
Cursor res = db.rawQuery(query, null);
return res;
}
您是否已尝试直接对数据库进行查询,以查看它是否正常工作,并验证给定id是否有一些数据?为什么表名是一个变量,看起来太复杂了?请你写代码好吗?ID的类型是什么?你已经有了查询,我不明白你的意思。谢谢你的try方法,但问题不是这样。它就是不起作用!看起来一切正常,但光标为空。
public Cursor getSpecificData(int id){
SQLiteDatabase db = this.getWritableDatabase();
String query = "SELECT * FROM "+ TableName + " WHERE ID = "+id;
Cursor res = db.rawQuery(query, null);
return res;
}
public void setViews() {
Cursor cursor = mDatabase.getSpecificData(id);
try {
if (cursor.getCount() != 0) {
if (cursor.moveToFirst()) {
textview1.setText(cursor.getString(cursor.getColumnIndex(DatabaseHelper.COLUMN_1_NAME)));
textview2.setText(cursor.getString(cursor.getColumnIndex(DatabaseHelper.COLUMN_2_NAME)));
//and so on
}
}
} finally {
if (cursor != null) {
cursor.close();
}
}
}