web-dev-qa-db-fra.com

rawQuery (requête, selectionArgs)

Je veux utiliser la requête de sélection pour récupérer les données de la table. J'ai trouvé, rawQuery(query, selectionArgs) méthode de SQLiteDatabase classe pour récupérer des données. Mais je ne sais pas comment query et selectionArgs devraient être passés à la méthode rawQuery?

81
sree_iphonedev
rawQuery("SELECT id, name FROM people WHERE name = ? AND id = ?", new String[] {"David", "2"});

Vous passez un tableau de chaînes avec un nombre égal d'éléments que vous avez "?"

207
Rawkode

Peut-être que cela peut vous aider

Cursor c = db.rawQuery("query",null);
int id[] = new int[c.getCount()];
int i = 0;
if (c.getCount() > 0) 
{               
    c.moveToFirst();
    do {
        id[i] = c.getInt(c.getColumnIndex("field_name"));
        i++;
    } while (c.moveToNext());
    c.close();
}
14
user1208720

Un exemple de rawQuery - db.rawQuery("select * from table where column = ?",new String[]{"data"});

10
Tarun

Pour être complet et gérer correctement les ressources:

        ICursor cursor = null;
        try
        {

            cursor = db.RawQuery("SELECT * FROM " + RECORDS_TABLE + " WHERE " + RECORD_ID + "=?", new String[] { id + "" });

            if (cursor.Count > 0)
            {
                cursor.MoveToFirst();
            }
            return GetRecordFromCursor(cursor); // Copy cursor props to custom obj
        }
        finally // IMPORTANT !!! Ensure cursor is not left hanging around ...
        {
            if(cursor != null)
                cursor.Close();
        }
2
ComeIn

voir ci-dessous le code cela peut vous aider.

String q = "SELECT * FROM customer";
Cursor mCursor = mDb.rawQuery(q, null);

ou

String q = "SELECT * FROM customer WHERE _id = " + customerDbId  ;
Cursor mCursor = mDb.rawQuery(q, null);
1
user1381827

si votre requête SQL est la suivante

SELECT name,roll FROM student WHERE name='Amit' AND roll='7'

alors rawQuery sera

String query="SELECT id, name FROM people WHERE name = ? AND roll = ?";
String[] selectionArgs = {"Amit","7"} 
db.rawQuery(query, selectionArgs);
1
Puneet Verma
String mQuery = "SELECT Name,Family From tblName";
Cursor mCur = db.rawQuery(mQuery, new String[]{});
mCur.moveToFirst();
while ( !mCur.isAfterLast()) {
        String name= mCur.getString(mCur.getColumnIndex("Name"));
        String family= mCur.getString(mCur.getColumnIndex("Family"));
        mCur.moveToNext();
}

Nom et famille sont votre résultat

0
faeze saghafi