gpt4 book ai didi

android - 在 Android 中使用 rawQuery 和 rowid 从 sqlite 数据库中选择一行

转载 作者:搜寻专家 更新时间:2023-11-01 07:52:22 27 4
gpt4 key购买 nike

我已经创建了一个看起来像这样的外部 SQLite 数据库:image of a few rows of a database

我想在我的 Android 应用程序中做的是使用 ROWID 从一行中加载所有值并将它们放入数组中。例如:

Cursor cursor = db.rawQuery("SELECT * FROM Dairy WHERE ROWID = 1", null);

这将返回第 1 行的所有值:51、35、63。但是,这总是只返回第一个值,在本例中为 51。此外,cursor.getCount() 总是返回1.

这是我的完整代码:

db = getReadableDatabase();

Cursor cursor = db.rawQuery("SELECT * FROM Dairy WHERE ROWID = 1", null);

yData = new int[cursor.getCount()];

if (cursor.moveToFirst()) {
for (int i = 0; i < cursor.getCount(); i++) {
yData[i] = cursor.getInt(0);
cursor.moveToNext();
}
cursor.close();
}
db.close();

最佳答案

如果我理解正确,您需要返回单行中每一列的值。由于您只选择单行并希望从每一列中获取值,因此您只需要获取每一列的索引。然后遍历它们。这是如何完成的代码。

Cursor cursor = db.rawQuery("SELECT * FROM Dairy WHERE ROWID = 1 Limit 1", null);

if (cursor.moveToFirst()) {
String[] columnNames = cursor.getColumnNames();
yData = new int[columnNames.length];

for (int i = 0; i < columnNames.length; i++) {
// Assume every column is int
yData[i] = cursor.getInt(cursor.getColumnIndex(columnNames[i]));
}
}

cursor.close();
db.close();

关于android - 在 Android 中使用 rawQuery 和 rowid 从 sqlite 数据库中选择一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33187154/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com