Chi*_*one 2 sqlite android rowid
I've created an external SQLite database that looks something like this:
我要在Android应用程序中执行的操作是使用ROWID从一行加载所有值并将它们放入数组。例如:
Cursor cursor = db.rawQuery("SELECT * FROM Dairy WHERE ROWID = 1", null);
Run Code Online (Sandbox Code Playgroud)
这将返回行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();
Run Code Online (Sandbox Code Playgroud)
感谢帮助。
如果我正确理解,则需要返回单行中每一列的值。由于您仅选择单行,并且希望从每一列中获取价值,因此只需要获取每一列的索引即可。然后遍历它们。这是代码如何完成的。
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();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6597 次 |
最近记录: |