为什么我的sqlite数据库查询不到东西啊

        db.execSQL("create table if not exists courses (acceptanceDate varchar(20),professional varchar(20),classs varchar(20),course varcharr(20))");
              db.execSQL("insert into courses values(2015,'软件工程','一班','高等数学')");

建表和插入语句如上,查询的时候发现只有

Cursor cursor = db.rawQuery("select classs from courses where acceptanceDate="+AcceptanceDate+"",null);

这样才能成功,就是只有where查询条件是数字的时候才能查到东西(AcceptanceDate是我定义的一个变量,取到的值是2015),如果查询

Cursor cursor = db.rawQuery("select classs from courses where professional="+Professional+"",null);

就会报错
E/SQLiteLog: (1) no such column: 软件工程

关键是我用

Cursor cursor = db.rawQuery("select professional from courses where acceptanceDate="+AcceptanceDate+"",null);

也能查询到软件工程这个数据,有没有大佬知道这是哪有问题啊....

加上单引号试一下

Cursor cursor = db.rawQuery("select classs from courses where professional='"+Professional+"'",null);

同楼上加引号,但是楼主这样写sql会存在sql注入的情况,建议采用android官方room框架

看sql没发现什么错,不过自己写sql字符串,也很容易出错了自己却看不出来,建议两个排除方法
(1)查看表所有列,看看“professiona”l的列名是否变成了“软件工程”
(2)把db.rawQuery()里面的sql提出来,尽可能是全部的db.rawQuery(),打印或调试看看sql字符串是否正确,逐一排查