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

user interface - Python attempting to create a simple gui, getting "AttributeError: 'MainMenu' object has no attribute 'intro_screen'" -

jquery - Common JavaScript snippet to share files on Google Drive, Dropbox, Box.net or SkyDrive -

Android Gson.fromJson error -