无法从数据库中检索任何数据
Can't retrieve any data from database
我已将现有数据库导入我的 Android Studio 项目。我正在尝试 运行 对数据库进行搜索查询并将结果提供给我的回收站视图,但似乎我从数据库中获得的所有内容都是空的或类似的....我尝试删除 WHERE 参数但没有工作。也许这是一个愚蠢的问题,但这是我的第一个真实世界的项目,我有点迷茫,感谢任何帮助。
class BackgroundRunnable implements Runnable {
private String name;
public BackgroundRunnable(String name) {
this.name = name;
}
@Override
public void run() {
Log.d(TAG, "code is in the Runnable");
final Map<Integer, String> backgroundmap = new HashMap<>();
DatabaseAccess mydatabase = DatabaseAccess.getInstance(getContext());
mydatabase.open();
Cursor cursor = mydatabase.SearchbyName();
if (cursor != null && cursor.moveToFirst()) {
for (int i = 0; i < cursor.getCount(); i++) {
Log.d(TAG, "MainFragment code in cursor result:" + cursor.getString(cursor.getColumnIndex("name")));
backgroundmap.put(cursor.getInt(cursor.getColumnIndex("id")), cursor.getString(cursor.getColumnIndex("name")));
cursor.moveToNext();
}
cursor.close();
mainHandler.post(new Runnable() {
@Override
public void run() {
keyList.addAll(backgroundmap.keySet());
valueList.addAll(backgroundmap.values());
adapter.setvalues(keyList, valueList);
}
});
}
mydatabase.close();
}
}
经过 2 天的摸索,我找到了答案。简而言之:在终端或类似工具中使用 sqlite 创建数据库,不要像 DB Browser 那样使用外部 .exe。我注意到我创建并从 DB Browser 导入的数据库显示为空,即使在 DB Browser 中检查会显示其他情况。我重新创建了表和值,但无济于事。然后我用另一个名字创建了一个新数据库并更改了我的数据库助手 class,工作起来非常棒.... –
我已将现有数据库导入我的 Android Studio 项目。我正在尝试 运行 对数据库进行搜索查询并将结果提供给我的回收站视图,但似乎我从数据库中获得的所有内容都是空的或类似的....我尝试删除 WHERE 参数但没有工作。也许这是一个愚蠢的问题,但这是我的第一个真实世界的项目,我有点迷茫,感谢任何帮助。
class BackgroundRunnable implements Runnable {
private String name;
public BackgroundRunnable(String name) {
this.name = name;
}
@Override
public void run() {
Log.d(TAG, "code is in the Runnable");
final Map<Integer, String> backgroundmap = new HashMap<>();
DatabaseAccess mydatabase = DatabaseAccess.getInstance(getContext());
mydatabase.open();
Cursor cursor = mydatabase.SearchbyName();
if (cursor != null && cursor.moveToFirst()) {
for (int i = 0; i < cursor.getCount(); i++) {
Log.d(TAG, "MainFragment code in cursor result:" + cursor.getString(cursor.getColumnIndex("name")));
backgroundmap.put(cursor.getInt(cursor.getColumnIndex("id")), cursor.getString(cursor.getColumnIndex("name")));
cursor.moveToNext();
}
cursor.close();
mainHandler.post(new Runnable() {
@Override
public void run() {
keyList.addAll(backgroundmap.keySet());
valueList.addAll(backgroundmap.values());
adapter.setvalues(keyList, valueList);
}
});
}
mydatabase.close();
}
}
经过 2 天的摸索,我找到了答案。简而言之:在终端或类似工具中使用 sqlite 创建数据库,不要像 DB Browser 那样使用外部 .exe。我注意到我创建并从 DB Browser 导入的数据库显示为空,即使在 DB Browser 中检查会显示其他情况。我重新创建了表和值,但无济于事。然后我用另一个名字创建了一个新数据库并更改了我的数据库助手 class,工作起来非常棒.... –