SQLite Exception no such column when trying to select

I think you got the answer to what's wrong from Antlersoft or p.campbell, to format the query correctly, I would suggest, you do it like this :

mDb.rawQuery("select count(*) from usertable where " + KEY_STUDID + "=?", studid);

That should (1) solve your problem and (2) protect you from SQL injections

Also, I am not sure that

dataCount.getInt(0);

is the best thing to do... you should probably use getColumnIndex to make sure you are getting the right data...


You need to quote 'pb3874' (single quotes) if you are including it in the SQL string.


What's happening here is that SQLite thinks that 'pb3874' is actually a column name, rather than a string/text literal.

To specify that it's a text literal, you'll want to ensure your text value is wrapped in the appropriate single quotes:

To prevent SQL injection attacks, whenever you're taking input from the user, use a parameterized query:

("select count(*) from usertable where " + KEY_STUDID + "=?", studid);

Without parameterization (very much discouraged when taking user input):

("select count(*) from usertable where " + KEY_STUDID + "='" + studid + "'", null);  

The reason your numeric values didn't produce this: SQLite converted those numeric literals for you.

Tags:

Sqlite

Android