android - rawQuery arguments weird behaviour? -


i wrote rawquery gives me empty cursor:

string query = "select * " + tbl_name + " ? = ?"; string[] args = new string[] {col_name, long.tostring(id)}; cursor c = db.rawquery(query, args); 

but if following query expected results:

string query = "select * " + tbl_name + " " + col_name + " = " + long.tostring(id); cursor c = db.rawquery(query, null); 

i gathered can't use table name 1 of arguments of 'rawquery' method. i'm not sure why not (i presume surrounds argument ' ', it's guess).

other came conclussion args should used in order include user inputs query, , in regards looks better use sqlitestatement.

in summary: (and if possible why) shoul use args in rawquery (instead of concatenated in string). , why should use rawquery @ instead sqlitestatement (or query)?

as far know col_name can't replaced "?". android takes "?" "arguments", not "selection"

final string query = "select * " + tbl_name + " col_name=?"; final string[] args = new string[] {long.tostring(id)}; final cursor c = db.rawquery(query, args); 

or better use method

query(string table, string[] columns, string selection, string[] selectionargs, string groupby, string having, string orderby) 

in case this:

final string[] args = new string[] {long.tostring(id)}; final cursor c = db.query(tbl_name, null, col_name + "=?", args, null, null, null); 

Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -