I've created an SQLite database inside application, populated it and now I'm trying to read from it. The app keeps crashing and this is the logcat I receive:
12-30 05:53:18.008: E/AndroidRuntime(6205): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.testparsing/com.example.testparsing.Urnik}: android.database.sqlite.SQLiteException: unrecognized token: "4c" (code 1): , while compiling: SELECT predmet FROM predmeti WHERE dan=PONEDELJEK and ura=2 and oddelek=4c
Function for reading from database:
Cursor getSubject(String dan, int ura, String oddelek){
String[] columnNames = new String[1];
columnNames[0] = SQLiteHelper.PREDMET;
String selection = SQLiteHelper.DAN+"="+dan+" and "+SQLiteHelper.URA+"="+ura+" and "+SQLiteHelper.ODDELEK+"="+oddelek;
open();
return db.query(
SQLiteHelper.IME_TABELE,
columnNames,
selection,
null, null, null, null);
}
How I'm trying to read:
TextView tw1p = (TextView) findViewById(R.id.tview1p);
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
Cursor c = db.getSubject("PONEDELJEK", 2, "4c");
String predmet = c.getString(c.getColumnIndex(SQLiteHelper.PREDMET));
tw1p.setText(predmet);
A screenshot of table, just to prove that oddelek "4c" in fact does exist:
SELECT predmet FROM predmeti WHERE dan=PONEDELJEK and ura=2 and oddelek=4c
You need to quote your string literals, for example:
SELECT predmet FROM predmeti WHERE dan='PONEDELJEK' and ura=2 and oddelek='4c'
But it's better to use ?
placeholder for literals:
SELECT predmet FROM predmeti WHERE dan=? and ura=? and oddelek=?
and change your null
selectionArgs
to
new String[] { dan, Integer.toString(ura), oddelek }
String selection = SQLiteHelper.DAN+"="+dan+" and "+SQLiteHelper.URA+"="+ura+" and "+SQLiteHelper.ODDELEK+"='"+oddelek+"'";
Replace with this and check
issue is due to missing quotes only :-
Example
db.delete(TABLE_NA,E, ADDRESS + "= '" + address + "'", null);
Please check below field + "= '" + address + "'"
{Issue as address is string so it should be under 'address' }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With