ListView 显示了 Item1、Item2 和 Item3。当我尝试删除 Item2 时,ListView 错误地显示了 Item1 和 Item2。控制台显示列表中的正确项目:Item1 和 Item3。
主屏幕:
class HomeScreen extends StatefulWidget {
@override
HomeScreenState createState() => new HomeScreenState();
}
class HomeScreenState extends State<HomeScreen> {
List<Todo> todos = new List();
@override
void initState() {
super.initState();
populateTodos();
}
void populateTodos() async {
TodoDatabase db = new TodoDatabase();
db.getAllTodos().then((newTodos) {
for (var todo in newTodos) {
print(todo.title + ", " + todo.id);
}
setState(() => todos = newTodos);
});
}
void openAddTodoScreen() async {
Navigator
.push(context, …Run Code Online (Sandbox Code Playgroud) 我正在尝试将大量的CSV大文件插入数据库。我正在使用PutDataBaseRecord处理器来执行此操作,这使此过程非常快速和容易。
问题是我不知道如何正确处理故障,例如,如果值与列的数据类型不匹配或行是否重复。如果发生这种情况,PutDataBaseRecord处理器将丢弃刚从CSV文件转换的该批次的所有记录。因此,如果一条2.000.000记录失败,则2.000.000记录都不会进入数据库。
我通过预先清理CSV数据设法解决了一个问题源,但仍然遇到重复行的问题。
我试图通过将CSV拆分为NIFI中的单行,然后再将其传递到PutDatabaseRecord处理器中来解决此问题,这确实非常慢,并且经常会导致OOM错误。
有人可以建议在SQL数据库中插入大CSV的另一种方法吗?