从Flatter中的sqlite db导出csv,sqlite db是从文本字段的输入创建的
我需要从文本字段中获取输入并以csv格式导出它们。我使用sqlite数据库存储字段数据,然后尝试将其导出到csv 以下是用于在sqlite中存储现场数据的颤振代码:从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
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'),
),