2011-09-16 28 views
1

我的查询是执行查询的结果是“无此列”异常

dbAdapter.selectRecordsFromDB("OmniaDB",new String[]{"imsi","type","msg","length","dt_gen","dt_send"},"type"+"="+"call"+"AND"+"dt_send"+"="+"null",null,null,null,"dt_gen"); 

抛出的异常是

android.database.sqlite.SQLiteException: no such column: callANDdt_send: , while compiling: SELECT imsi, type, msg, length, dt_gen, dt_send FROM OmniaDB WHERE type=callANDdt_send=null ORDER BY dt_gen 
+6

您已经提出了9个问题,尚未投票或接受任何人。 –

+2

如果你不知道如何接受答案,请参阅[如何接受答案的工作?](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)为什么)。 – 2011-09-16 19:19:15

回答

1

你错过一吨的空间在"type"+"="+"call"+"AND"+"dt_send"+"="+"null",应该是"type='call' AND dt_send=null"。当它应该是一个巨大的字符串时,为什么还要使用连接?无论如何,修复之后可能还有其他问题,但是,因为我不知道你的数据是什么样的。

1
"type"+"="+"call"+"AND"+"dt_send"+"="+"null" 

这一切都没有任何意义。摆脱不必要的连接叶

"type = call AND dt_send = null" 

这是无效的SQL。您没有正确引用字符串call,并且您无法将NULL与任何内容(包括NULL)进行比较。

这很可能是你应该用什么:

"type = 'call' AND dt_send IS NULL" 

可能有其他问题,您发布的混乱,但这应该解决这些问题中的至少一个。 (例如,type可能是SQLite中的保留字;我不确定。)

相关问题