在android中使用rawQuery查询数据库
我正在编写一个简单的查询,可以从android中的表中获取特定字段记录 这是我的桌子设计: userid、name、totalmarks(所有字符串) 我的问题是:在android中使用rawQuery查询数据库,android,mysql,sql,Android,Mysql,Sql,我正在编写一个简单的查询,可以从android中的表中获取特定字段记录 这是我的桌子设计: userid、name、totalmarks(所有字符串) 我的问题是: public String getTotalMarks(String UserID) { String mark = "0"; SQLiteDatabase db = this.getWritableDatabase(); String queryMarks = "SELECT * FROM " +TA
public String getTotalMarks(String UserID)
{
String mark = "0";
SQLiteDatabase db = this.getWritableDatabase();
String queryMarks = "SELECT * FROM " +TABLE_MARK_DETAILS +" WHERE " +KEY_USERID + " =" + UserID ;
Cursor cursor = db.rawQuery(queryMarks, null);
if (cursor.moveToFirst())
{
do
{
mark = cursor.getString(0);
}
while (cursor.moveToNext());
}
Log.e("Cursor", "Value" +mark);
cursor.close();
db.close();
return mark;
}
我得到了完美的结果。我想知道有没有比上面更好的查询数据库的方法?publicstringgettotalmarks(stringuserid){
public String getTotalMarks(String UserID) {
String mark = null;
SQLiteDatabase db = this.getReadableDatabase();
String queryMarks = "SELECT " + KEY_TOTALMARKS + " FROM " + TABLE_MARK_DETAILS + " WHERE " +KEY_USERID + " =" + UserID;
Cursor cursor = db.rawQuery(queryMarks, null);
if(null != cursor){
if(cursor.moveToFirst() && 0 < cursor.getCount()){
mark = cursor.getString(0);
}
cursor.close();
}
Log.e("Cursor", "Value" + mark);
db.close();
return TextUtils.isEmpty(mark) ? "0" : mark;
}
字符串标记=null;
SQLiteDatabase db=this.getReadableDatabase();
String queryMarks=“从“+表标记详细信息+”中选择“+KEY\u TOTALMARKS+”,其中“+KEY\u USERID+”=“+USERID”;
Cursor Cursor=db.rawQuery(queryMarks,null);
如果(null!=光标){
if(cursor.moveToFirst()&&0
如果您只需要一列,那么您可以选择该列而不是select*
。如果只希望返回一行,则不需要do while
循环;但是,如果查询可能返回多行,那么您当前的代码只返回最后一行中的值,我会询问这是否是故意的行为。@Karakuri-我只需要一个列结果,只会得到一行。你能举例说明如何在没有循环的情况下获得相同的结果吗?if(cursor.moveToFirst()){mark=cursor.getString(0);}