获取 SimpleCursorAdapter 中外键的值
Get value of the Foreign Key in SimpleCursorAdapter
我有一个 listView,其中填充了来自我的数据库的数据。我使用 simpleCursorAdapter 来显示值。
我有一个 table 可以添加课程的地方:英语、法语...
在另一个 table 中,我可以创建已开发的课程(我添加开始和结束的日期、哪几天、课程的主题)。我必须作为 FK 提供课程。
当我添加课程时,我想在我的 listView 中显示每个示例:英语 - 阅读,但它显示 1 - 阅读。因为 1 是我存储在第二个 table.
中的值
如何将 1 更改为英语?
这是我的代码:
Cursor cursor = dbhelper.getAllCours();
String[] from = { "branche_cours", "designation" }; //here 'branche_cours' is the lesson i store as an INT, it's the FK so
int[] to = { R.id.text_branche_cours, R.id.text_designation };
adapter = new SimpleCursorAdapter(this, R.layout.list_row, cursor, from, to, 0);
lvCours.setAdapter(adapter);
adapter.notifyDataSetChanged();
我使用的方法getAllCours()
public Cursor getAllCours()
{
//from here, i retrieve the ID, designation and branche_cours
String Query = ("select ID as _id, date_debut, date_dernier, dixieme_point, " +
"demi_point, description, designation, lundi, mardi, mercredi, jeudi," +
" vendredi, samedi, branche_cours from " + TABLE_COURS);
Open();
Cursor cursor = db.rawQuery(Query, null);
return cursor;
}
我怎样才能 link 那个 int 到真实值(那么 '1' 怎么变成 'English')?
一种解决方案是执行 SQL JOIN 操作以从两个表中获取数据:
所以 SQL 查询应该是这样的:
SELECT table1.branche_cours, table2.designation
FROM table1
INNER JOIN table2 ON table1.ID=table2.ID;
要在另一个 table 中查找值,您可以使用 correlated subquery:
SELECT ID AS _id,
...,
samedi,
(SELECT name
FROM other_table
WHERE other_table.id = cours.branche_cours
) AS branche_cours
FROM cours;
我有一个 listView,其中填充了来自我的数据库的数据。我使用 simpleCursorAdapter 来显示值。
我有一个 table 可以添加课程的地方:英语、法语...
在另一个 table 中,我可以创建已开发的课程(我添加开始和结束的日期、哪几天、课程的主题)。我必须作为 FK 提供课程。
当我添加课程时,我想在我的 listView 中显示每个示例:英语 - 阅读,但它显示 1 - 阅读。因为 1 是我存储在第二个 table.
中的值如何将 1 更改为英语?
这是我的代码:
Cursor cursor = dbhelper.getAllCours();
String[] from = { "branche_cours", "designation" }; //here 'branche_cours' is the lesson i store as an INT, it's the FK so
int[] to = { R.id.text_branche_cours, R.id.text_designation };
adapter = new SimpleCursorAdapter(this, R.layout.list_row, cursor, from, to, 0);
lvCours.setAdapter(adapter);
adapter.notifyDataSetChanged();
我使用的方法getAllCours()
public Cursor getAllCours()
{
//from here, i retrieve the ID, designation and branche_cours
String Query = ("select ID as _id, date_debut, date_dernier, dixieme_point, " +
"demi_point, description, designation, lundi, mardi, mercredi, jeudi," +
" vendredi, samedi, branche_cours from " + TABLE_COURS);
Open();
Cursor cursor = db.rawQuery(Query, null);
return cursor;
}
我怎样才能 link 那个 int 到真实值(那么 '1' 怎么变成 'English')?
一种解决方案是执行 SQL JOIN 操作以从两个表中获取数据:
所以 SQL 查询应该是这样的:
SELECT table1.branche_cours, table2.designation
FROM table1
INNER JOIN table2 ON table1.ID=table2.ID;
要在另一个 table 中查找值,您可以使用 correlated subquery:
SELECT ID AS _id,
...,
samedi,
(SELECT name
FROM other_table
WHERE other_table.id = cours.branche_cours
) AS branche_cours
FROM cours;