android.database.sqlite.SQLiteException:没有这样的列

pan*_*era 7 java xml sqlite android

当我执行此查询时,我得到'android.database.sqlite.SQLiteException:没有这样的列'是什么错误?

    public Cursor Getupdate(String rid) throws SQLException 
        {

Cursor m1Cursor = db.rawQuery("SELECT _id FROM  Meeting   where meet="+rid , null);
    if (m1Cursor != null) {           
        if(m1Cursor.getCount() > 0)
        {

             m1Cursor.moveToFirst();
        }
    }
 return m1Cursor;
}
Run Code Online (Sandbox Code Playgroud)

logcat的

05-28 01:22:27.999: E/AndroidRuntime(1411): FATAL EXCEPTION: main
05-28 01:22:27.999: E/AndroidRuntime(1411): android.database.sqlite.SQLiteException: no such column: ttyuhomk: , while compiling: SELECT _id FROM  Meeting where meet=rage
Run Code Online (Sandbox Code Playgroud)

Met*_*247 31

对于字符串数据类型,总是使用像这样的"+ + rid +"'"这样引号,因为rid是String,你会得到错误.

如果rid是int,你应该使用+ rid.


sti*_*ike 17

你需要在Where子句检查中使用撇号(')

db.rawQuery("SELECT _id FROM  Meeting   where meet='"+rid+"'" , null);
Run Code Online (Sandbox Code Playgroud)


duf*_*ymo 5

或者,更好的是,使用 PreparedStatement 并绑定您的变量。它会为您正确转义字符串和日期。它还有助于解决 SQL 注入问题。


Thi*_*Zaw 5

你也可以这样使用.

db.rawQuery("SELECT _id FROM  Meeting   where meet=?" ,
            new String [] {rid});
Run Code Online (Sandbox Code Playgroud)

这也将解决SQL注入问题.