Проблема запроса на обновление флаттера SQLite - PullRequest
0 голосов
/ 18 апреля 2019

I ', пытаюсь написать простой запрос на обновление для Sqlite db в приложении флаттера. Безуспешно.

Это набор кода, который я пробовал. Я попробовал как комментарий, так и комментарий.

  Future<int> insertDeposit(DepositModel depositModel) async {
    int result = 0;
    Database db = await this.database;
    try {
        result = await db.update(depositTable, depositModel.toMap(),
            where: "$dUsername=?", whereArgs: [depositModel.username]);
//      String sql = "UPDATE $depositTable SET $dAmount = ${depositModel.amount}, $dDate = ${depositModel.date} WHERE $dUsername = ${depositModel.username}";
//      result = await db.rawUpdate(sql);

    } catch (e) {
      print("Exception in Deposit = $e");
    }
    return result;
  }

Я получаю сообщение об ошибке с сегментом без комментариев

E/SQLiteLog( 3834): (20) statement aborts at 13: [UPDATE deposit_tbl SET id = NULL, username = ?, amount = ?, note = NULL, date = ? WHERE username=?] datatype mismatch
I/flutter ( 3834): Exception in Deposit = DatabaseException(datatype mismatch (code 20)) sql 'UPDATE deposit_tbl SET id = NULL, username = ?, amount = ?, note = NULL, date = ? WHERE username=?' args [gireesh@gmail.com, 200.0, Apr 18, 2019, gireesh@gmail.com]}

Ошибка при использовании закомментированного сегмента

I/flutter ( 3834): Exception in Deposit = DatabaseException(near "18": syntax error (code 1): , while compiling: UPDATE deposit_tbl SET amount = 200.0, date = Apr 18, 2019 WHERE username = gireesh@gmail.com) sql 'UPDATE deposit_tbl SET amount = 200.0, date = Apr 18, 2019 WHERE username = gireesh@gmail.com' args []}

1 Ответ

0 голосов
/ 18 апреля 2019

попробуй так, сделай класс pojo вот так ...

class Question {
int id;

String question;

Question({this.id, this.question});

  factory Question.fromMap(Map<String, dynamic> json) => new Question(
    id: json["id"],
    question: json["question"],
  );

 Question.fromJson(Map<String, dynamic> map) {
this.id = map['id'];
this.question = map['question'];
}

Map<String, dynamic> toJson() => {
    "id": id,
    "question": question,
  };
}

после обновления данных ..

updateQuestion(Question question) async {
final db = await database;
var res = await db.update("Question", question.toJson(),
    where: "id = ?", whereArgs: [question.id]);
return res;
}

дополнительную информацию см. Здесь https://pub.dartlang.org/packages/sqflite https://medium.com/flutter-community/using-sqlite-in-flutter-187c1a82e8b

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...