从 Android 中的 SQLite 数据库获取数据?

马纳夫·伊斯拉尼

在这里,我从 android 中的 SQLite 获取数据,但问题是数据库中总共有 20 列,它正确获取了 19 列,但是当我获取最后 20 列时,整个数组 [] 为空

例如当我写查询

SELECT NEW_ANIMAL_ID,TAG_NO,FARMER_ID,ANIMAL_EAR_POSITION,ANIMAL_SPECIES,ANIMAL_BREED,ANIMAL_BODY_COLOR,ANIMAL_SHAPE_RIGHT,ANIMAL_SHAPE_LEFT,ANIMAL_SWITCH_OF_TAIL,AGE_YEARS,ANIMAL_OTHER_MARKS,PRAG_STATUS,NUMBER_OF_LACTATION,CURRENT_MILK,SUM_INSURED,TAG_IMAGE,HEAD_IMAGE,LEFT_SIDE_IMAGE,RIGHT_SIDE_IMAGE  FROM  ANIMAL_SYNC_TABLE    ORDER BY  NEW_ANIMAL_ID   DESC

它完全获取 19 列

但是当我添加最后一个列名并尝试获取它时,它显示了一个空数组[]

Query = SELECT NEW_ANIMAL_ID,TAG_NO,FARMER_ID,ANIMAL_EAR_POSITION,ANIMAL_SPECIES,ANIMAL_BREED,ANIMAL_BODY_COLOR,ANIMAL_SHAPE_RIGHT,ANIMAL_SHAPE_LEFT,ANIMAL_SWITCH_OF_TAIL,AGE_YEARS,ANIMAL_OTHER_MARKS,PRAG_STATUS,NUMBER_OF_LACTATION,CURRENT_MILK,SUM_INSURED,TAG_IMAGE,HEAD_IMAGE,LEFT_SIDE_IMAGE,RIGHT_SIDE_IMAGE,TAIL_IMAGE_1  FROM  ANIMAL_SYNC_TABLE    ORDER BY  NEW_ANIMAL_ID   DESC

这是创建表代码

db.execSQL("create table " + TABLE_NAME_ANIMAL_SYNC + "(NEW_ANIMAL_ID INTEGER PRIMARY KEY AUTOINCREMENT,FARMER_ID INT,TAG_NO TEXT,ANIMAL_EAR_POSITION TEXT,ANIMAL_SPECIES TEXT,ANIMAL_BREED TEXT,ANIMAL_BODY_COLOR TEXT,ANIMAL_SHAPE_RIGHT TEXT,ANIMAL_SHAPE_LEFT TEXT,ANIMAL_SWITCH_OF_TAIL TEXT,AGE_YEARS NUMBER,ANIMAL_OTHER_MARKS NUMBER,PRAG_STATUS NUMBER,NUMBER_OF_LACTATION NUMBER,CURRENT_MILK NUMBER,SUM_INSURED NUMBER,TAG_IMAGE BLOB NOT NULL,HEAD_IMAGE BLOB NOT NULL,LEFT_SIDE_IMAGE BLOB NOT NULL,RIGHT_SIDE_IMAGE BLOB NOT NULL,TAIL_IMAGE_1 BLOB NOT NULL)");

这是数据库代码

 public List<DataModel> getAllData() {
        List<DataModel> data = new ArrayList<>();
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery("SELECT NEW_ANIMAL_ID,TAG_NO,FARMER_ID,ANIMAL_EAR_POSITION,ANIMAL_SPECIES,ANIMAL_BREED,ANIMAL_BODY_COLOR,ANIMAL_SHAPE_RIGHT,ANIMAL_SHAPE_LEFT,ANIMAL_SWITCH_OF_TAIL,AGE_YEARS,ANIMAL_OTHER_MARKS,PRAG_STATUS,NUMBER_OF_LACTATION,CURRENT_MILK,SUM_INSURED,TAG_IMAGE,HEAD_IMAGE,LEFT_SIDE_IMAGE,RIGHT_SIDE_IMAGE,TAIL_IMAGE_1  FROM  ANIMAL_SYNC_TABLE    ORDER BY  NEW_ANIMAL_ID   DESC", null);
        StringBuffer stringBuffer = new StringBuffer();
        DataModel dataModel = null;

        if (cursor.moveToFirst()) {
            do {
                dataModel = new DataModel();


                int NEW_ANIMAL_ID = cursor.getInt(cursor.getColumnIndexOrThrow("NEW_ANIMAL_ID"));
                String TAG_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("TAG_NO"));
                String FARMER_ID_1 = cursor.getString(cursor.getColumnIndexOrThrow("FARMER_ID"));
                String ANIMAL_EAR_POSITION_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("ANIMAL_EAR_POSITION"));
                String ANIMAL_SPECIES_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("ANIMAL_SPECIES"));
                String ANIMAL_BREED_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("ANIMAL_BREED"));
                String ANIMAL_BODY_COLOR_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("ANIMAL_BODY_COLOR"));
                String ANIMAL_SHAPE_RIGHT_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("ANIMAL_SHAPE_RIGHT"));
                String ANIMAL_SHAPE_LEFT_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("ANIMAL_SHAPE_LEFT"));
                String ANIMAL_SWITCH_OF_TAIL_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("ANIMAL_SWITCH_OF_TAIL"));
                String AGE_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("AGE_YEARS"));
                String ANIMAL_OTHER_MARKS_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("ANIMAL_OTHER_MARKS"));
                String PRAG_STATUS_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("PRAG_STATUS"));
                String NUMBER_OF_LACTATION_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("NUMBER_OF_LACTATION"));
                String CURRENT_MILK_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("CURRENT_MILK"));
                String SUM_INSURED_COLUMN_1 = cursor.getString(cursor.getColumnIndexOrThrow("SUM_INSURED"));


                dataModel.setAnimal_id(NEW_ANIMAL_ID);
                dataModel.setFarmer_id(FARMER_ID_1);
                dataModel.setTag_no(TAG_COLUMN_1);
                dataModel.setEar_position(ANIMAL_EAR_POSITION_COLUMN_1);
                dataModel.setAnimal_species(ANIMAL_SPECIES_COLUMN_1);
                dataModel.setAnimal_breed(ANIMAL_BREED_COLUMN_1);
                dataModel.setBody_color(ANIMAL_BODY_COLOR_COLUMN_1);
                dataModel.setShape_right(ANIMAL_SHAPE_RIGHT_COLUMN_1);
                dataModel.setShape_left(ANIMAL_SHAPE_LEFT_COLUMN_1);
                dataModel.setTail_switch(ANIMAL_SWITCH_OF_TAIL_COLUMN_1);
                dataModel.setAge(AGE_COLUMN_1);
                dataModel.setOther_marks(ANIMAL_OTHER_MARKS_COLUMN_1);
                dataModel.setPrag_status(PRAG_STATUS_COLUMN_1);
                dataModel.setLactations(NUMBER_OF_LACTATION_COLUMN_1);
                dataModel.setMilk_qty(CURRENT_MILK_COLUMN_1);
                dataModel.setSum_insured(SUM_INSURED_COLUMN_1);
                dataModel.setTag_photo(Utils.getBitmapFromByte(cursor.getBlob(cursor.getColumnIndex("TAG_IMAGE"))));
                dataModel.setHead_photo(Utils.getBitmapFromByte(cursor.getBlob(cursor.getColumnIndex("HEAD_IMAGE"))));
                dataModel.setLeft_photo(Utils.getBitmapFromByte(cursor.getBlob(cursor.getColumnIndex("LEFT_SIDE_IMAGE"))));
                dataModel.setRight_photo(Utils.getBitmapFromByte(cursor.getBlob(cursor.getColumnIndex("RIGHT_SIDE_IMAGE"))));
                dataModel.setSwitch_Tail_Photo(Utils.getBitmapFromByte(cursor.getBlob(cursor.getColumnIndex("TAIL_IMAGE_1"))));


                stringBuffer.append(dataModel);
                data.add(dataModel);

            } while (cursor.moveToNext());

        }

        return data;
    }

先感谢您!!!

苏拉吉·瓦什纳夫

你会改变你的代码:

 if (cursor.moveToFirst()) {
            do {
                dataModel = new DataModel();
               ....
        } while (cursor.moveToNext());
  }

对此:

while(cursor.moveToNext())
{
  dataModel = new DataModel();
  ...

  data.add(dataModel);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从android中的sqlite数据库获取随机数据

从Android中的SQLite数据库中获取德语字符

如何从Android中的SQLite数据库获取名称

如何从Android中的SQLite数据库获取空值

Android如何从SQLite数据库的列中获取值

在Android中升级SQLite数据库

ListView Android 中的 SQLite 数据库

在Android中备份SQLite数据库

在Android中连接SQLite数据库

android中的sqlite数据库错误

无法从Android中自行创建的sqlite数据库中获取数据

如何在Android Studio上获取Sqlite数据库中插入数据的实时视图

从SQLite数据库Android获取arraylist

无法在android中的Sqlite数据库中保存数据?

android:在sqlite数据库中缓存gson数据

在Android sqlite数据库中更新单个数据

未在Android的SQLite数据库中插入数据

无法在Android SQlite数据库中插入数据

如何获取Android sqlite数据库中的所有表名?

尝试在Android中复制SQLite数据库并获取“无此文件或目录”

Android从列表中设置并获取值并保存到数据库sqlite

从android中的sqlite数据库获取字符串,日期,时间和整数

Android如何从onListItemClick中获取ListView ID并使用它?ListView,通知,SQLite数据库

Android SQLite 从数据库中获取最年轻的人

如何从 SQLite 数据库 Android Studio 中获取所有表

Android中SQLite数据库中的单行

在Android中删除或更新SQLite数据库中的条目

从sqlite数据库获取数据作为livedata android

在Android Studio中定义SQLite数据库