0

我正在创建一个 android 应用程序。其中我有一个没有列的数据库表。从这些列中,我选择 4 个特定列并检查其中是否有空值或空值。它应该给我有空值的行数。我使用的代码是

count=db.rawQuery("select * from "+AllValuesTable+" where (app_salutation IS NULL OR app_salutation='') AND (ref_cusagreeno IS NULL or ref_cusagreeno='') AND (asset_categry IS NULL or asset_categry='') AND (off_Applcname IS NULL or off_Applcname='');", null).getCount();

但我得到的输出是 0 而它应该显示 4....因为有四行这些列是空的。我似乎无法找出问题所在。请帮忙。谢谢!

4

2 回答 2

0

On the possibility that you have spaces it may be worth trimming your fileds before comparing to '' :

count=db.rawQuery
  (
   "select * from "+AllValuesTable+" where 
   (app_salutation IS NULL OR TRIM(app_salutation)='') AND
   (ref_cusagreeno IS NULL OR TRIM(ref_cusagreeno)='') AND
   (asset_categry IS NULL OR TRIM(asset_categry)='') AND
   (off_Applcname IS NULL OR TRIM(off_Applcname)='')"
  , null).getCount();
于 2013-04-25T07:14:42.287 回答
0

我不知道为什么你的查询没有抛出异常,文档不是很清楚如果sql语句无效会发生什么。在任何情况下,您都不应该以分号结束您的陈述。

Official document  

参数 sql SQL 查询。SQL 字符串不能是 ; 终止

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#rawQuery(java.lang.String , java.lang.String[], android.os.CancellationSignal)

于 2013-04-25T07:32:13.163 回答