【发布时间】:2016-03-13 08:43:44
【问题描述】:
我从 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 时,它返回表中的所有行。
但是我想选择特定的列,我不知道该怎么做。我想在editext中编写我的查询并直接编译并获取结果它将返回光标对象(如果我没有错)。那么我将如何选择列名来显示我的结果,因为列名是用editText编写的。 例如:SELECT id,fname from employees
提前谢谢你
【问题讨论】:
-
如果有人不明白,我会在 cmets 中解释
-
事情是 rawquery 写入光标对象。如果我想显示所有列,那么这很容易,但是在 edittext 中我怎么知道要显示哪一列。有人可以帮忙吗???
-
尝试
String[] names = cursor.getColumnNames();,然后仅获取这些列的值。 -
你想做什么,从特定列获取数据并立即显示在 EditText 中?
-
@shree krishna 。我正在尝试从 editText 获取查询,然后我想在 TextView 上显示数据。由于用户正在输入任何 sql 查询,我怎么知道需要显示这些列。如果用户选择所有行,我的代码就可以工作,那么我只需要打印整个表格就可以了。
标签: android mysql sqlite android-studio android-sqlite