【问题标题】:SQFLITE ERROR: SqfliteDatabaseException (DatabaseException(database_closed))SQFLITE 错误:SqfliteDatabaseException(DatabaseException(database_closed))
【发布时间】:2021-11-13 21:51:56
【问题描述】:

应用程序中的两个页面用数据库(sqlite)列出。但是当我想在页面之间切换时,出现这样的错误:SqfliteDatabaseException (DatabaseException(database_closed))

请帮帮忙。。我不明白为什么会看到这个错误。

import 'dart:async';
import 'dart:io';
import 'dart:typed_data';
import 'package:bankingapp/models/coin.dart';
import 'package:bankingapp/models/histories.dart';
import 'package:flutter/services.dart';
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';

class DbHelper {
  static Database? _db;

  Future<Database> get db async {
    return _db ??= await initDb();
  }

  Future<Database> initDb() async {
    var dbFolder = await getDatabasesPath();
    String path = join(dbFolder, 'app.db');

    // Delete any existing database:
    await deleteDatabase(path);

    // Create the writable database file from the bundled demo database file:
    try {
      await Directory(dirname(path)).create(recursive: true);
    } catch (_) {}
    ByteData data =
        await rootBundle.load(join("assets/database", "bankingapp.db"));
    List<int> bytes =
        data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes);
    await new File(path).writeAsBytes(bytes, flush: true);

    //open the database
    return await openDatabase(path);

  }

  Future<List<Histories>> getHistories() async {
    var dbClient = await db;
    var result = await dbClient.rawQuery("SELECT * FROM Histories");
    return result.map((data) => Histories.fromMap(data)).toList();
  }

  Future<List<Coins>> getCoins() async {
    var dbClient = await db;
    var result = await dbClient.rawQuery("SELECT * FROM Coins");
    return result.map((data) => Coins.fromMap(data)).toList();
  }
}

【问题讨论】:

    标签: ios flutter sqlite dart sqflite


    【解决方案1】:

    我不完全知道答案,但我建议您使用Floor package。这实现起来非常简单,它是 SQLite 数据库的抽象,所以我想你会很熟悉。这个包我似乎没有遇到这样的错误。 https://pub.dev/packages/floor

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-24
      • 1970-01-01
      • 2019-12-22
      • 2023-02-07
      • 2019-10-12
      • 1970-01-01
      • 1970-01-01
      • 2020-08-31
      相关资源
      最近更新 更多