【发布时间】:2021-10-12 15:07:33
【问题描述】:
当我保存一个值时收到一个空值,因为在我的代码中我有三个字段
String? _itemName ="";
String? _dateCreated ="";
int? _id;
在运行我的项目后,我通过调用此方法插入一个项目:
Future<int> saveItem(NoDoItem item) async
{
var dbClient = await database;
int res = await dbClient.insert(tableName, item.toMap());
debugPrint(res.toString());
return res;
}
使用saveItem()函数:
void _hndleSubmitted(String text) async
{
_textEditingController.clear();
NoDoItem noDoItem = NoDoItem(text, DateTime.now().toIso8601String());
int savedItemId = await db.saveItem(noDoItem);
debugPrint("Item saved ID: $savedItemId");
}
之后,当我检索所有 itemNames 时,我得到的是空值而不是用户输入的值
定义getItems()函数:
Future<List> getItems() async
{
var dbClient = await database;
var result = await dbClient.rawQuery("SELECT * FROM $tableName ORDER BY $columnItemName ASC");
return result.toList();
}
使用getItems()函数:
_readNotoDoItems() async
{
List items = await db.getItems();
items.forEach((item) {
NoDoItem noDoItem = NoDoItem.map(item);
print("Db items: ${noDoItem.itemName}");
});
}
请告诉我我得到空值而不是输入值的原因是什么以及如何解决这个问题?
【问题讨论】:
-
您检查过数据库中的内容吗?
标签: flutter sqlite dart intellij-idea dart-null-safety