2014-09-28 3 views
0

데이터베이스에서 행의 단일 셀을 업데이트하지 않겠습니다. 그러나 행 5 열의 포함되어 있습니다 그리고 그들은 같은 유지해야합니다뿐만 아니라 다른 모든 값을 전달하지 싶습니다.안드로이드에서 SQLite 데이터베이스에서 행의 개별 셀을 업데이트하십시오.

java.lang.IllegalArgumentException가 : 빈 값

방법에 대한 아이디어 db.update 방법이 예외를 throw

Cursor cursor = db.query(STATION_TABLE, null, null, null, null, null, null); 

     //If the database already include some stations. 
     if(cursor.moveToFirst()) 
     { 
      ContentValues stationValues = new ContentValues(); 

      for(StopLocation station: stations) 
      { 
       stationValues.clear(); 

       //The database already includes the station 
       if(cursor.getString(POS_STA_ID).equals(station.getId())) 
       { 
        values.put(KEY_STA_DISTANCE, "null"); 

        db.update(STATION_TABLE, stationValues, KEY_STA_ID + "=?", new String[]{station.getId()}); 
       } 

:

나는이 코드를 가지고 이 문제를 해결하려면? 내가 제대로 질문을 이해하고 당신은 항상 하나의 행 다루고있는 가정하면

답변

1

, 접근하는 두 가지 방법이 있습니다이 :

첫째 :

전체에있는 모든 필드의 값을 가져옵니다 행 및 업데이트하기 전에 콘텐츠 가치로 선언 :

ContentValues cv = new ContentValues(); 
cv.put("Field1","123"); 
cv.put("Field2","True") 

둘째 :

사용에는 ExecSQL() 메소드 :

String strSQL = "UPDATE your_table SET Field1 = foo WHERE POST_STA_ID = "+ station.getId(); 
myDataBase.execSQL(strSQL); 
+0

나는이 호출하려하지만 아무것도 updaterd을 얻는 것처럼 보이지 않는다. 모든 단서? 'UPDATE Stations SET distance = NULL WHERE distance! = NULL' – Sulby

+1

해결책을 찾았습니다. 대신 IS NOT NULL을 사용해야합니다! = NULL – Sulby

관련 문제