soft-summer-2021 / summer2021

程序设计实践 (2021夏季学期)
34 stars 6 forks source link

C# WinForm程序中操作SQLite出现的问题 #57

Closed MaxLong2001 closed 3 years ago

MaxLong2001 commented 3 years ago

在使用C#操作SQLite数据库时,第一层级打开的窗口可以正常对数据库进行操作,而第二层级的窗口就只能访问数据库但不能进行添加、修改、删除等操作,程序会卡住很久然后弹出错误结果(和预期结果不同,并不是编译报错)。

具体来说,如果直接访问 AdminManagementForm 窗体,则可以正常以管理员身份操作数据库;而如果是从 Login 窗体通过登录进入 AdminManagementForm 窗体,则无法正常对数据库进行修改(例如在正常修改图书信息时程序会卡住很久之后弹出异常处理中的“修改图书出错”)。

下方云盘链接中有简单的bug演示视频和程序源码,求解答,非常感谢! https://bhpan.buaa.edu.cn:443/link/6810239C3A935A40AC39B04A4C5E7DFA

程序中部分功能及界面还在完善,可能还会有其他小问题

huyikun commented 3 years ago

错误信息是 database is locked,原因是SQLite同步问题导致出错,即存在未关闭的读写进程 Login.cs文件

dc.Close();    // 缺失该行
dbLink.close();

ps:演示视频选择录屏的窗口错了

MaxLong2001 commented 3 years ago

解决啦,感谢助教!