从Flatter中的sqlite db导出csv,sqlite db是从文本字段的输入创建的

从Flatter中的sqlite db导出csv,sqlite db是从文本字段的输入创建的,sqlite,csv,flutter,dart,Sqlite,Csv,Flutter,Dart,我需要从文本字段中获取输入并以csv格式导出它们。我使用sqlite数据库存储字段数据,然后尝试将其导出到csv 以下是用于在sqlite中存储现场数据的颤振代码: class Field { static const String TableName = "field"; String name; String origin; Field({ this.name, this.origin }); Map<String, dy

我需要从文本字段中获取输入并以csv格式导出它们。我使用sqlite数据库存储字段数据,然后尝试将其导出到csv

以下是用于在sqlite中存储现场数据的颤振代码:

class Field {
  static const String TableName = "field";
  String name;
  String origin;

  Field({
    this.name,
    this.origin
  });

  Map<String, dynamic> toMap() {
    return {
      'name': name,
      'origin': origin
    };
  }
}

class DatabaseProvider {

  DatabaseProvider._();

  static const databaseName = 'field_database.db';
  static final DatabaseProvider instance = DatabaseProvider._();
  static Database _database;

  Future<Database> get database async {
    print("datbase getter called");

    if (_database == null) {
      return await createDatabase();
    }

    return _database;
  }

  createDatabase() async {
    // String dbPath = await getDatabasesPath();

    return openDatabase(join(await getDatabasesPath(), databaseName),
        version: 1, onCreate: (Database db, int version) async {
          print("creating field table");

          await db.execute(
              "CREATE TABLE field(name Text, origin TEXT)");
        });
  }

  insertField(Field field) async {
    final db = await database;
    var res = await db.insert(Field.TableName, field.toMap(),
        conflictAlgorithm: ConflictAlgorithm.replace);
    print(res);
    return res;

  }

  Future<List<Field>> getField() async {
    final db = await database;

    final List<Map<String, dynamic>> maps = await db.query(Field.TableName);

    return List.generate(maps.length, (i) {
      return Field(
        name: maps[i]['name'],
        origin: maps[i]['origin'],
      );
    });
  }
}
数据已成功获取到sqlite中,但我不知道是否将其导出到csv文件,这是所需的结果。如果有人知道将文本输入从testfields直接转换为csv,也请告诉我

Padding(
            padding: const EdgeInsets.symmetric(vertical: 16.0),
            child: RaisedButton(
              onPressed: () {
                  DatabaseProvider.instance.insertField(
                    Field(
                      name: nameTextController.text,
                      origin: originTextController.text,
                    ),
                  );
              },
              child: Text('Submit'),
            ),