Xamarin.Android 使用 SQLite 出现 Couldn't read row 0, col -1 from CursorWindow. 异常

异常:Java.Lang.IllegalStateException: Couldn‘t read row 0, col -1 from CursorWindow.  Make sure the Cursor is initialized correctly before accessing data from it.

出现该问题一般分为两种情况:

1.请求的字段不在表中,可能是大小写没写对。(我就是Id写成id出现的错误)

2.字段类型不匹配。

Xamarin.Android 使用 SQLite 出现 Couldn't read row 0, col -1 from CursorWindow. 异常

原文地址:https://www.cnblogs.com/swjian/p/9360731.html

时间: 2024-10-08 23:28:35

Xamarin.Android 使用 SQLite 出现 Couldn't read row 0, col -1 from CursorWindow. 异常的相关文章

Xamarin.Android之SQLite.NET ORM

一.前言 通过<Xamarin.Android之SQLiteOpenHelper>和<Xamarin.Android之ContentProvider>的学习,我们已经掌握了如何使用特定于该平台的数据库操作.但是这样却和Xamarin所宣称的跨平台相违背了,因为这样我们就需要针对不同的平台编写不同的代码,而本章将使用Github上的开源项目SQLite.NET去解决这个问题,从而可以实现跨平台,减少代码的重复. 关于该开源项目请点我 二.准备工作 因为这个库很大,而我们只需要其中的一

Xamarin.Android 使用 SQLite 出现 Index -1 requested, with a size of 10 异常

异常: Android.Database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 10 此错误是数据返回到ICursor无法确定获取列的索引,那么需要加上一下代码即可. if (i == 0) //确定游标位置 { ic.MoveToFirst(); } else { ic.MoveToNext(); } 完整代码Demo: /// <summary> /// 查询数据 /// </summa

Xamarin.Android开发实践(十三)

Xamarin.Android之SQLite.NET ORM 一.前言 通过<Xamarin.Android之SQLiteOpenHelper>和<Xamarin.Android之ContentProvider>的 学习,我们已经掌握了如何使用特定于该平台的数据库操作.但是这样却和Xamarin所宣称的跨平台相违背了,因为这样我们就需要针对不同的平台编写不同 的代码,而本章将使用Github上的开源项目SQLite.NET去解决这个问题,从而可以实现跨平台,减少代码的重复. 关于该

Xamarin.Android开发实践(十四)

Xamarin.Android之ListView和Adapter 一.前言 如今不管任何应用都能够看到列表的存在,而本章我们将学习如何使用Xamarin去实现它,以及如何使用适配器和自定义适配器(本文中的适配器的主要内容就是将原始的数据转换成了能够供列表控件显示的项). 二.简介适配器 在开始之前我们需要先了解下适配器,首先是提供给我们使用的适配器之间的关系: 下面我们将上面的适配器进行简单的介绍: BaseAdapter:顾名思义,就是所以适配器的基类,但是我们不能将其实例化,因为它是一个虚类

Xamarin.Android之ListView和Adapter

一.前言 如今不管任何应用都能够看到列表的存在,而本章我们将学习如何使用Xamarin去实现它,以及如何使用适配器和自定义适配器(本文中的适配器的主要内容就是将原始的数据转换成了能够供列表控件显示的项). 二.简介适配器 在开始之前我们需要先了解下适配器,首先是提供给我们使用的适配器之间的关系: 下面我们将上面的适配器进行简单的介绍: BaseAdapter:顾名思义,就是所以适配器的基类,但是我们不能将其实例化,因为它是一个虚类,一般我们都是继承该类并实现其中的方法,形成形成自定义的列表(大多

xamarin.Android SQLite存储

在可移植类库 新建: using SQLite.Net.Interop; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CommonLib { /// <summary> /// 数据存储环境 /// </summary> public interface IDataStorag

我正在使用Xamarin的跨平台框架—Xamarin.Android回忆录

一.缘起 在自己给别家公司做兼职外包的时候,已经明确知道外包的活不是那么好干的,一般在经历了初期热血澎湃的激情后,逐渐冷淡,愤怒,再冷淡,再愤怒…,听上去好像高潮迭起,但令人尴尬的是,这高潮迭起我们都不想要,以至于最后都想草草结束,一走了之.但当我们把Android移动应用委托第三方开发后,还是未能料到产品会如此粗糙,在不能确定这产品要到何时才能与观众见面时,我们果断终止了恋爱. 于是接下来可选的方案有限,初期采用好评如潮的phonegap开发后,其界面的流畅速度,尤其以下滑滚动速度最让人不能接

Xamarin.Android开发实践(十二)

Xamarin.Android之ContentProvider 一.前言 掌握了如何使用SQLiteOpenHelper之后,我们就可以进行下一步的学习.本章我们将会学习如何使用ContentProvider来将数据库方面的操作封装起来,同时它还可以供其他应用访问并操作数据库. 二.概念 首先我们不会急于写代码,而是要搞懂如何利用ContentProvider对数 据库进行操作,因为我们不会直接操作数据库对象,而是通过URI来操作数据库.这就好比你要获取User表的全部内容,那么这个URI就是

Xamarin.Android之SQLiteOpenHelper

一.前言 在手机中进行网络连接不仅是耗时也是耗电的,而耗电却是致命的.所以我们就需要数据库帮助我们存储离线数据,以便在用户未使用网络的情况下也可以能够使用应用的部分功能,而在需要网络连接的功能上采用提示方式,让用户决定是否打开网络.而本节我们将会学习如何访问数据库以及提供基本的增删改查功能,并且使他们尽量的解耦. 二.数据库 Xamarin.Android下创建本地数据库与在Java下的方式相同,而我们必须掌握使用SQLiteOpenHelper,因为这个类会简化我们创建数据的步骤,让我们只需要