2013-07-29 66 views
0

我要删除“TYPE = 0”的记录,我的代码:getContentResolver()删除过滤器不会影响

cv.put(Call.NAME, titleString); 
cv.put(Call.BUILD_NAME, ""); 
cv.put(Call.BUILD, build); 
cv.put(Call.UNIT, unit); 
cv.put(Call.ROOM, room); 
cv.put(Call.TIME, date); 
cv.put(Call.TYPE, 0);// 
cv.put(Call.DEVICETYPE, doordevicetype); 
cv.put(Call.PHOTO, baos.toByteArray()); 
cv.put(Call.CONTACT_ID, 9999); 

Uri contactUri, uriRet; 
ContentResolver resolver = getContentResolver(); 
uriRet = resolver.insert(contactUri, cv); 

这样我就可以插入多条记录,有的记录Call.TYPE=0,一些Call.TYPE=1,所以我想全部删除Call.TYPE=1。我的代码:

int a=getContentResolver().delete(Call.CONTENT_URI, Call.TYPE +"=" +1, null); 

,但应用程序中删除所有记录,包括Call.TYPE=0。我不知道什么是错的。添加,插入,更新记录一切正常,但删除一些不起作用的reocrds,请给我一些建议吗?

回答

2

使用此代码删除特定的行匹配时TYPE = 1 ...

String[] selectionArgs=new String[]{String.valueOf(1)}; 
// this is for which argument to match with TYPE=1 and delete row 

String selection=""+TablenName.TYPE+"=?"; // this is where condition 
getContentResolver().delete(Call.CONTENT_URI, selection, selectionArgs); 

Note : just refer this [link][1]. its usefull to understand for , how delete are happening.. 
[1]: http://www.w3schools.com/sql/sql_delete.asp 
+0

感谢您的回答,但它也删除所有记录。 – pengwang

+0

对不起,您的代码是正确的 – pengwang

+0

伟大的答案+1 –