解决Unhandled Exception: DatabaseException(error database_closed)

问题场景描述

使用Flutter的Sqlite执行多条SQL(execute multiple SQL)>10,这中间会进行原库与SQL比对,符合条件会进行关闭db.close,再new一个实例重新db初始化等,操作中报错如下:

问题分析

出现该错误的原因是:执行的是多条SQL语句需要一定的时间,所以使用了await异步,封闭了方法_executeMultiSQL进行指操作,指操作中使用了:

这么做的原因是操作十多条SQL需要时间,为了不影响后续操作,但错误也由此产生。

解决方法

一、将批量方法_executeMultiSQL的db.execute取消异步:

二、

在条件检查中,关闭db.close时,将db设为null

reload看下,问题解决。