gpt4 book ai didi

sqlite - flutter 选择返回空sqlite

转载 作者:IT王子 更新时间:2023-10-29 07:20:34 24 4
gpt4 key购买 nike

我是 SQLiteflutter 的新手。我正在尝试访问 SQLite 数据库(它在我计算机上的项目文件夹中,位于 '~/Work/FlutterTest/ProjectTestFlutter/poa.db'。 p>

但是当我尝试将我的 List 转换为 String 时,我得到了 null

这是我的代码:

class _DbPageState extends State<DbPage> {
String data;
var databasesPath;
String path;
Database database;

@override
void initState() {
super.initState();
}

@override
Widget build(BuildContext context) {
return new Scaffold(
body: Container(
child: Row(
children: <Widget>[
new IconButton(
onPressed: () {
data = getRecords().toString();
},
icon: Icon(Icons.more_vert)),
new Text(
data,
)
],
),
));
}

Future<void> openDb() async {
var databasesPath = await getDatabasesPath();
String path = join(databasesPath, '~/Work/FlutterTest/ProjectTestFlutter/poa.db');

database = await openDatabase(path, version: 1);
}

Future<List<Map>> getRecords() async {
List<Map> list = await database.rawQuery('SELECT * FROM tbl1');
return list;
}

Future<void> closeDb() async {
await database.close();
}
}

最佳答案

例如,当应用程序启动时,将数据库复制到您的设备。

ByteData data = await rootBundle.load("assets/poa.db");
List<int> bytes = data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes);

var databasesPath = await getDatabasesPath();
String dbPath = join(databasesPath, "poa.db");
await File(dbPath).writeAsBytes(bytes);

记得将 db 文件添加到 pubspec.yml 中,就像处理图像资源一样。之后,您可以使用以下方法从小部件中打开它:

var databasesPath = await getDatabasesPath();
String dbPath = join(databasesPath, "poa.db");
var database = await openDatabase(dbPath, version: 1);

关于sqlite - flutter 选择返回空sqlite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55918674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com