【Android(无法从CursorWindow读取第0行,第3列。在从中访问数据之前,请确保正确初始化Cursor)】识字粗堪供赋役,不须辛苦慕公卿。这篇文章主要讲述Android:无法从CursorWindow读取第0行,第3列。在从中访问数据之前,请确保正确初始化Cursor相关的知识,希望能为你提供帮助。
我正在开发一个新的应用程序,我收到一个错误:无法从CursorWindow读取第0行第3行。在从中访问数据之前,请确保正确初始化Cursor。
我正在使用外部数据库(assets文件夹)并尝试从Auditoria表中获取名称列,从Categoria表中获取名称列,从Preguntas表中获取pregunta列。所以,我做了一个非常好的联接。我在DB Browser上测试了SQLite。
有人能帮我吗?
public AuditoriaModel getCriterioById(int id) {
AuditoriaModel auditoriaModel = null;
openDatabase();
Cursor cursor = database.rawQuery("SELECT Auditoria.Name AS Auditorias, Categorias.Name AS Categoria, Preguntas.Pregunta AS Pregunta FROM Auditoria INNER JOIN Categorias ON Categorias.IdAuditoria = Auditoria.Id INNER JOIN Preguntas ON Preguntas.IdCategoria = Categorias.Id WHERE Preguntas.Id = ?", new String[]{String.valueOf(id)});
cursor.moveToFirst();
auditoriaModel = new AuditoriaModel (cursor.getInt(0), cursor.getString(1), cursor.getString(2), cursor.getInt(3), cursor.getString(4), cursor.getString(5));
//Obtendremos un solo resultado
cursor.close();
closeDatabase();
return auditoriaModel;
}
答案您正在选择三列,但尝试阅读六列。
删除额外的
get...()
读取,或将缺少的列添加到您的SELECT
。(另一个问题:如果查询没有匹配,请检查
moveToFirst()
的结果。)推荐阅读
- 可能尚未为Cursor android初始化局部变量
- 如何在android中使用游标(sqlite查询)搜索数据库
- 在Glassfish 5.0中部署ADF WEbapp时出错
- 如何为Electron / Atom Shell App设置应用程序图标
- 我在哪里可以找到Android的默认图标( [重复])
- 如何在android studio中更改图标颜色
- Android Studio编译旧图标
- Android(Button drawable Top)
- 无法更新ng-repeat($ scope。$ apply())中的数组更新视图不 起作用