Chcę użyć zapytania wybierającego do pobierania danych z tabeli. Znalazłem rawQuery(query, selectionArgs)
metodę SQLiteDatabase
klasy do pobierania danych. Ale nie wiem, jak query
i selectionArgs
należy przekazać rawQuery
metodę?
Chcę użyć zapytania wybierającego do pobierania danych z tabeli. Znalazłem rawQuery(query, selectionArgs)
metodę SQLiteDatabase
klasy do pobierania danych. Ale nie wiem, jak query
i selectionArgs
należy przekazać rawQuery
metodę?
Odpowiedzi:
rawQuery("SELECT id, name FROM people WHERE name = ? AND id = ?", new String[] {"David", "2"});
Przekazujesz tablicę łańcuchową z taką samą liczbą elementów, jak masz "?"
rawQuery("SELECT id, name FROM people WHERE ?= ?", new String[] {"column_name", "David"});
, czy to jest prawidłowe zapytanie?
Może to ci pomoże
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();
}
Jeden przykład rawQuery - db.rawQuery("select * from table where column = ?",new String[]{"data"});
zobacz poniższy kod, który może ci pomóc.
String q = "SELECT * FROM customer";
Cursor mCursor = mDb.rawQuery(q, null);
lub
String q = "SELECT * FROM customer WHERE _id = " + customerDbId ;
Cursor mCursor = mDb.rawQuery(q, null);
rawQuery
. Jego celem jest uniknięcie łączenia ciągów znaków itp. Ponadto należy zaakceptować odpowiedź Rawkode.
Dla kompletności i prawidłowego zarządzania zasobami:
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();
}
jeśli twoje zapytanie SQL jest takie
SELECT id,name,roll FROM student WHERE name='Amit' AND roll='7'
wtedy rawQuery będzie
String query="SELECT id, name, roll FROM student WHERE name = ? AND roll = ?";
String[] selectionArgs = {"Amit","7"}
db.rawQuery(query, selectionArgs);
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();
}
Imię i rodzina to Twój wynik