2015-08-03 27 views
0

我想根据多行值更新一行,运行应用程序后出现如下错误:(致命异常:主 android.database.sqlite.SQLiteException:near“=”:语法错误(代码1):,在编译:UPDATE表名SET sFollowed = ?,码= ?,名称= WHERE船只名称=如何更新Android中的sqlite数据库?

这里是我的更新方法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); 

在数据库类

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

使用正确的WHERE条件字符串值作为参数。像:

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);