gpt4 book ai didi

Android SQLite 查询(我想解析一般的 SQL 查询)

转载 作者:行者123 更新时间:2023-11-29 03:26:14 33 4
gpt4 key购买 nike

我从 EditText 中获取了 String 值。以及提交查询的按钮。

String sql=editQuery.getText().toString();// SELECT * FROM employees

StringBuffer finalDataq=new StringBuffer();

Cursor cur = dbHelper.rawsqlquery(sql);

for(cur.moveToFirst();!cur.isAfterLast();cur.moveToNext()) {
finalDataq.append(cur.getInt(cur.getColumnIndex(MyDBHelper.ID)));
finalDataq.append(" - ");
finalDataq.append(cur.getString(cur.getColumnIndex(MyDBHelper.FIRST_NAME)));
finalDataq.append(" - ");
finalDataq.append(cur.getString(cur.getColumnIndex(MyDBHelper.LAST_NAME)));

finalDataq.append(" - ");
finalDataq.append(cur.getString(cur.getColumnIndex(MyDBHelper.ADDRESS)));

finalDataq.append(" - ");
finalDataq.append(cur.getDouble(cur.getColumnIndex(MyDBHelper.SALARY)));
finalDataq.append("\n");

}
submittedQuery.setText(finalDataq);

我的 rawsqlquery() 函数 -

public Cursor rawsqlquery(String sql) {
return myDB.rawQuery(sql,null);
}

它给了我正确的结果。例如,当我写 select * from table_name 时,它​​返回了表中的所有行。

但我想选择特定的列,但我不知道该怎么做。我想在编辑文本中编写查询并直接编译并获取结果,它将返回游标对象(如果我没记错的话) ).那么我将如何选择列名来显示我的结果,因为列名是用 editText 编写的。 例如:SELECT id,fname from employees

提前谢谢你

最佳答案

尝试使用 cur.getColumnNames(); 方法获取 Cursor 检索到的列名

删除你的 for 循环并改用下面的代码

Cursor cur = dbHelper.rawsqlquery(sql);
String[] names = cur.getColumnNames();
while(cur.moveToNext()) {
for(String name : names) {
finalDataq.append(cur.getString(cur.getColumnIndex(name)));
finalDataq.append(" - ");
}
finalDataq.append("\n");
}

关于Android SQLite 查询(我想解析一般的 SQL 查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35968289/

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