ver una tabla studio rawquery mostrar example datos consultas android sqlite

una - select sqlite android studio



Citas de Android dentro de una cadena de consulta sql (6)

¿Has intentado reemplazar una cita simple con 2 comillas simples? Eso funciona para ingresar datos en una base de datos.

Quiero realizar una consulta como la siguiente:

uvalue = EditText( some user value ); p_query = "select * from mytable where name_field = ''" + uvalue + "''" ; mDb.rawQuery( p_query, null );

si el usuario ingresa una sola cotización en su entrada, se bloquea. Si lo cambias a:

p_query = "select * from mytable where name_field = /"" + uvalue + "/"" ;

se bloquea si el usuario ingresa una comilla doble en su entrada. y, por supuesto, siempre podían ingresar tanto comillas simples como dobles.


DatabaseUtils.sqlEscapeString funcionó correctamente para mí. La cadena está encerrada por comillas simples y las comillas simples dentro de la cadena se convierten en comillas dobles. Intenté usar selectionArgs en la consulta getContentResolver (). () Pero no funcionó en absoluto.


Debe utilizar el parámetro selectionArgs del método rawQuery :

p_query = "select * from mytable where name_field = ?"; mDb.rawQuery(p_query, new String[] { uvalue });

Esto no solo resuelve el problema de las cotizaciones, sino que también mitiga la SQL Injection .


Debes cambiar

p_query = "select * from mytable where name_field = ''" + uvalue + "''" ;

me gusta

p_query = "select * from mytable where name_field = ''" + android.database.DatabaseUtils.sqlEscapeString(uvalue)+ "''" ;


Prefiero escapar de comillas simples y comillas dobles en cada instrucción de inserción con Sqlite de esta manera:

String sqlite_stament = sqlite_stament.replace("''", "''''").replace("/"", "/"/"");


Tengo el mismo problema, pero ahora se soluciona con solo escribir el código, como en el caso en que desea insertar el valor uvalue. Luego, escriba como

uvalue= EditText( some user value ); uvalue = uvalue.replaceAll("''", "''''"); p_query = "select * from mytable where name_field = ''" + uvalue + "''" ; mDb.rawQuery( p_query, null );

guay..!!