gpt4 book ai didi

java - 获取二维数组中的 SQLite DB 数据并在 android 中返回

转载 作者:行者123 更新时间:2023-12-01 13:33:16 25 4
gpt4 key购买 nike

我有以下函数,用于查询 SQLite 数据库,将检索到的记录放入数组中并将其返回。

public String[][] getrecords(){

Log.i("SENDSERVER", "Get Records Called");
SQLiteDatabase sampleDB = this.getReadableDatabase();
Cursor c = sampleDB.rawQuery("SELECT id,welawa,lati,longi FROM " +
TABLE_LOCATIONS + " LIMIT 5", null);
String[][] aryDB = new String[5][4];
int i = 0;
if (c != null ) {
if (c.moveToFirst()) {
do {
String db_id = c.getString(c.getColumnIndex("id"));
String welawa = c.getString(c.getColumnIndex("welawa"));
String latitude = c.getString(c.getColumnIndex("lati"));
String longitude = c.getString(c.getColumnIndex("longi"));
aryDB[i][0] = db_id;
aryDB[i][1] = welawa;
aryDB[i][2] = latitude;
aryDB[i][3] = longitude;
Log.i("SENDSERVER", "Record Added"); //This doesn't get logged
i++;
}while (c.moveToNext());
}
}
Log.i("SENDSERVER", "Return Records");
return aryDB;

}

我尝试检索记录并从我的服务类中按如下方式使用它们。

String aryDB[][] = dbh.getrecords();
Log.i("SENDSERVER", "GET DB RECORDS");
int i = 0;
int id = 0;
String welawa = "";
String lati = "";
String longi = "";
while(i < 5){
id = Integer.parseInt(aryDB[i][0]);
welawa = aryDB[i][1];
lati = aryDB[i][2];
longi = aryDB[i][3];
Log.i("SENDSERVERDB", id + " - " + welawa + " - " + lati + " - " + longi);
i++;
}

由于某种原因,数组没有被返回。我可能的猜测是,1. 函数的定义错误。我的目的是返回数组。2. 我正在获取数据库连接/我的检索代码错误。3.还有一些我的菜鸟大脑无法理解的事情。

非常感谢你们的帮助。

------编辑添加更多日志后,应用程序崩溃于

Cursor c = sampleDB.rawQuery("SELECT id,welawa,lati,longi FROM " +
TABLE_LOCATIONS + " LIMIT 5", null);

我的查询有问题吗?

最佳答案

这是数据库问题。使用了错误的 ColumnName。

关于java - 获取二维数组中的 SQLite DB 数据并在 android 中返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21434453/

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