【发布时间】:2023-03-30 16:04:01
【问题描述】:
总结
使用 android studio 和 sqlite 数据库,我正在尝试向表中插入一些行。问题是当我想阅读它们时,它会忽略第一行。
代码
先向DATASETS_INFO表插入3行:
SQLiteDatabase db = this.getWritableDatabase();
String query = "INSERT INTO `DATASETS_INFO`(`dataset_ID`, `dataset_name`, `type`, `RAPI`) " +
"VALUES (122, 'avg temp salon 2', 1, '3avwVmZpw00')";
db.execSQL(query);
query = "INSERT INTO `DATASETS_INFO`(`dataset_ID`, `dataset_name`, `type`, `RAPI`) " +
"VALUES (125, 'avg hum salon 2', 2, '75uNfLLy300')";
db.execSQL(query);
query = "INSERT INTO `DATASETS_INFO`(`dataset_ID`, `dataset_name`, `type`, `RAPI`) " +
"VALUES (126, 'max hum salon 2', 2, 'b8rwdUM4F00')";
db.execSQL(query);
然后阅读它们:
SQLiteDatabase db = this.getWritableDatabase();
String query = "Select dataset_name, type FROM DATASETS_INFO";
Cursor myCursor = db.rawQuery(query, null);
Log.d("DatabaseHelper", "myCursor.getCount(): " + myCursor.getCount());
DatasetInfo[] datasetInfos = new DatasetInfo[myCursor.getCount()];
if (myCursor.moveToFirst()) {
int i=0;
while (myCursor.moveToNext()) {
Log.d("DatabaseHelper", "i: " + i + ", dataset_name: " + myCursor.getString(0));
datasetInfos[i] = new DatasetInfo();
datasetInfos[i].dataset_name = myCursor.getString(0);
datasetInfos[i].type = myCursor.getInt(1);
++i;
}
}
输出: 如您所见,它忽略了第一行并从第二行开始:
07-24 10:38:06.317 7253-7253/com.example.black3rror.mpandroidchart D/DatabaseHelper: myCursor.getCount(): 3
07-24 10:38:06.317 7253-7253/com.example.black3rror.mpandroidchart D/DatabaseHelper: i: 0, dataset_name: avg hum salon 2
07-24 10:38:06.317 7253-7253/com.example.black3rror.mpandroidchart D/DatabaseHelper: i: 1, dataset_name: max hum salon 2
有趣的是 getCount() 返回 3 但我不知道第一个在哪里。
【问题讨论】:
标签: java android sqlite insert sqliteopenhelper