2015-12-24 8 views
1

Я хочу обновить несколько ячеек одной строки с активным андроидом. некоторые вещи, как это,Обновление нескольких столбцов с activeAndroid

new Update(Question.class).set("UserAnswer ="+answerID, 
            "UserAnswerType = "+userAnswerType) 
           .where("QID = ?", questionID).execute(); 

но это дает мне ошибку. есть ли другой способ сделать это? или я что-то пропустил?

Вот мой Question.class для справки

@Table(name = "Questions") 
public class Question extends Model { 
@Expose 
@Column(name = "QID") 
private Integer ID; 

@Expose 
@Column(name = "AnswerID") 
private Integer AnswerID; 

@Expose 
@Column(name = "UserAnswer") 
private Integer UserAnswer; 

@Expose 
@Column(name = "UserAnswerType") 
private Integer UserAnswerType; 

//Getter and setter methods for fields 

public Question() { 
    // You have to call super in each constructor to create the table. 
    super(); 
} 
} 
+0

Вы можете задать вопрос. класс? – EJW

+0

@ Erik-JanWestendorp, обновил мой вопрос для справки – Nidhi

ответ

2

Вы можете сделать что-то, как показано ниже. Я сделал это в одном из моих проектов, и он работал нормально.

String updateSet = " UserAnswer = ? ," + 
        " UserAnswerType = ? "; 

new Update(Question.class) 
    .set(updateSet, answerID, userAnswerType) 
    .where(" QID = ? ", questionID) 
    .execute(); 

Аналогичный шаблон для любого количества столбцов будет работать. Если у вас есть поля Boolean, введите this issue.

-1
String x="sent = 1,file = "+n.getString("file"); 
new Update(Messages.class) 
    .set(x) 
    .where("id = ?", lid) 
    .execute(); 
0

Мы можем достичь этого, как этот путь.

  StringBuilder data=new StringBuilder(); 

      if (!TextUtils.isEmpty(name.getText().toString())) 
      { 
       data.append("Name = '"+name.getText().toString()+"',"); 
      } 
      if (!TextUtils.isEmpty(age.getText().toString())) 
      { 
       data.append("Age = '"+age.getText().toString()+"',"); 
      } 
      if (!TextUtils.isEmpty(empCode.getText().toString())) 
      { 
       data.append("EmployeeCode = '"+empCode.getText().toString()+"',"); 
      } 
      if (!TextUtils.isEmpty(mobNum.getText().toString())) 
      { 
       data.append("MobileNumber = '"+mobNum.getText().toString()+"',"); 
      } 
      if (!TextUtils.isEmpty(adress.getText().toString())) 
      { 
       data.append("address = '"+adress.getText().toString()+"'"); 
      } 
      String str=data.toString(); 

    //-------------and update query like this----------------- 

    new Update(EmpProfile.class).set(str).where("EmployeeCode = ?", empCode) 
        .execute(); 
Смежные вопросы