且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-01-23 06:36:56

异常: Android.Database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 10

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

此错误是数据返回到ICursor无法确定获取列的索引,那么需要加上一下代码即可。

if (i == 0)             //确定游标位置
{
    ic.MoveToFirst();
}
else
{
    ic.MoveToNext();
}

完整代码Demo:

/// <summary>
/// 查询数据
/// </summary>
void QueryData()
{
    ICursor ic =  Localhost_DataBase.Query("tb_person", null, null, null, null, null, null);
    for (int i = 0; i < ic.Count; i++)
    {
        if (i == 0)             //确定游标位置
        {
            ic.MoveToFirst();
        }
        else
        {
            ic.MoveToNext();
        }

        person = new Person();
        person.Id = ic.GetString(ic.GetColumnIndex("Id"));
        person.Name = ic.GetString(ic.GetColumnIndex("name"));
        person.Age = ic.GetString(ic.GetColumnIndex("age"));
        person.Sex= ic.GetString(ic.GetColumnIndex("sex"));
        person.IdCard = ic.GetString(ic.GetColumnIndex("idcard")); 
        list.Add(person); 
    }
    lv_Person.Adapter = new ListViewAdapter(this, list);
}