2015-08-03 4 views
0

Я хочу обновить одну строку на основе нескольких значений строки, после запуска приложения получить ошибку, например = (FATAL EXCEPTION: main android.database.sqlite.SQLiteException: near "=": синтаксическая ошибка (код 1):, во время компиляции: UPDATE имя_таблицы SET sFollowed = ?, Code = ?, Name = WHERE Vessel_Name =)Как обновить sqlite db в Android?

Вот мой метод обновления в MyDbhelper классе

public boolean update_isFollowed(String strVesselName , String strVesselNotationNumber, String strIsFollowed) { 
     SQLiteDatabase db1 = getReadableDatabase(); 

     ContentValues values=new ContentValues(); 
     values.put(COL_VesselName,strVesselName); 
     values.put(COL_ClassCodeNumber , strVesselNotationNumber); 
     values.put(COL_IsFollowedVessels, strIsFollowed); 

     int id=db1.update(Table_VesselList,values,COL_ClassCodeNumber + "=" +strVesselNotationNumber +" and "+ COL_VesselName +"="+strVesselName,null); 

     return id > 0; 
    } 
+0

Убедитесь, что strVesselName не является нулевым. – Sebastian

ответ

1

ли что-то вроде этого

В вашей деятельности

private UpdateDataInDB mUpdateDataInDb; 
mUpdateDataInDb = new UpdateDataInDB(activity); 

// call the update method with updated strings 
mUpdateDataInDb.updateCommentDetails(_name, heading, comment); 

В классе Database

public void updateCommentDetails(String name, String updatedHeading, 
     String updatedComment) { 
    // TODO Auto-generated method stub 
    mDatabase = mDatabase_handler.getReadableDatabase(); 
    ContentValues args = new ContentValues(); 
    args.put("Heading", updatedHeading); 
    args.put("Comment", updatedComment); 
    mDatabase.update("AddCommentTable", args,"Name" + "= ?", new String[]{ name }); 
    args.clear(); 
} 
+0

Спасибо, что это работает .. – Androiddv

+0

приветствуется! upvote пожалуйста !!! :) –

0

Используйте правильное, когда условие строки со значениями в качестве аргумента , как:

String where = COL_ClassCodeNumber+"=? AND "+COL_VesselName="?"; 
String[] whereArgs = new String[] {String.valueOf(strVesselNotationNumber), 
            String.valueOf(strVesselName)}; 
int id=db1.update(Table_VesselList,values,where,whereArgs); 
Смежные вопросы