2011-11-25 2 views
1

안드로이드에서 callog.calls 테이블의 cached_name 열을 업데이트하려고하지만 SQL lite 예외가 발생했습니다. 길게 시도했지만 아무 것도 생각 나지 않았습니다. 많이 검색했지만 충분하지 못했습니다. 업데이트 진술에 관한 정보. 친절하게 도와주세요.android에서 업데이트 쿼리를 사용하는 방법은 무엇입니까?

ContentResolver cr = getContentResolver(); 

      Cursor cur = cr.query(CallLog.Calls.CONTENT_URI, 
       null, null, null, null); 
ContentValues value=new ContentValues(); 
value.put("CallLog.Calls.CACHED_NAME","frank"); 
    cr.update(CallLog.Calls.CONTENT_URI,value,CallLog.Calls.CACHED_NAME, null); 

Error: 

11-25 20:11:17.755: ERROR/Database(106): Error updating CallLog.Calls.CACHED_NAME=frank using UPDATE calls SET CallLog.Calls.CACHED_NAME=? WHERE name 

11-25 20:11:17.776: ERROR/DatabaseUtils(106): Writing exception to parcel 

11-25 20:11:17.776: ERROR/DatabaseUtils(106): android.database.sqlite.SQLiteException: near ".": syntax error: , while compiling: UPDATE calls SET CallLog.Calls.CACHED_NAME=? WHERE name 

답변

0

업데이트 호출 구문이 잘못되었습니다. 다음과 같이 표시되어야합니다.

cr.update(CallLog.Calls.CONTENT_URI,value,null, null); 

표의 모든 값을 업데이트합니다. 특정 행을 업데이트하려면 다음을 수행하십시오.

cr.update(CallLog.Calls.CONTENT_URI,value,CallLog.Calls.CACHED_NAME +" = ?", new String[]{oldName}); 

여기서 oldName은 WHERE 절에서 사용할 값입니다.

+0

cr.update

http://www.vogella.de/articles/AndroidSQLite/article.html (CallLog.Calls.CONTENT_URI이 값은 CallLog.Calls.CACHED_NAME + "=?"새로운 문자열 [] { ","}) ... I 사용 이 이름은 처음에는 null.but 이제 db.any 아이디어에서 예외도없고 updation 점점지고. –

+0

은 CACHED_NAME 열이 빈 문자열 ''(널 문자열은 아니지만 0 문자열)과 동일한 행을 갱신합니다. 당신은 당신의 탁자에 그런 열이 있습니까? – Chris

관련 문제