Задать вопрос

Почему появляется ошибка о том, что таблицы нет?

При попытке получить данные с бд с таблицы lesson появляется ошибка, что такой таблицы нет.
База данных есть, таблица тоже.
Код получения

Future<List<Lesson>> getLessons() async {
    final db = await database;
    var res = await db.query("lessons");
    List<Lesson> list =  res.isNotEmpty ? res.map((c) => Lesson.fromMap(c)).toList() : [];
    print(list);
    return list;
  }


Код базы

initDB() async {
    
    Directory documentsDirectory = await getApplicationDocumentsDirectory();
    print(documentsDirectory.path);
    String path = join(documentsDirectory.path, "TestDB.db");
    await deleteDatabase(path);
    return await openDatabase(path, version: 1, onOpen: (Database db) {}, 
      onCreate: (Database db, int version) async {
      await db.execute("CREATE TABLE homeworks("
          "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL ,"
          "lesson INTEGER,"
          "date INTEGER,"
          "homework TEXT,"
          "isDone INTEGER"
          ");"
          "CREATE TABLE lessons ("
          "id INTEGER PRIMARY KEY,"
          "lesson TEXT)");
    });
  }

  • Вопрос задан
  • 38 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Инженер по тестированию
    5 месяцев
    Далее
  • Нетология
    Инженер по тестированию
    8 месяцев
    Далее
  • Thinknetica
    Профессиональная разработка на Ruby on Rails
    9 месяцев
    Далее
Решения вопроса 1
@imnotwhoexpect Автор вопроса
Оказывается db.execute() может выполнять только одну команду.
Для каждой таблицы надо снова вызывать db.execute()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽