如何在程序退出时更新数据库

limengchen 2006-09-14 01:03:48
在程序中修改数据时,我将修改后的数据存到dataTable中,并每隔一段时间更新一次。程序退出前必须将还没有存到数据库的数据写进去,也就是要再调用一次dataAdapter.Update(dataTable)。但如果在析构函数或Dispose函数中调用,会出现InvalidOperationException,因为SqlConnection已经被GC给dispose掉了,那应该怎么调用呢?
...全文
200 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuhuiITren 2006-09-19
  • 打赏
  • 举报
回复
帮顶
limengchen 2006-09-19
  • 打赏
  • 举报
回复
我的代码是在一个assembly里,如果我在website里调用这个模块怎么办?即使是在winform里,要是用户忘了在form_closing里调用也很麻烦啊。
pk_ricky 2006-09-19
  • 打赏
  • 举报
回复
应该是在form_closing事件里写的,
你可以选择这个窗体,属性,点那个闪电状的小图标(事件),找到FormClosing双击一下,就会出来这个事件的代码:
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
// 你的操作代码
}
就行了!
limengchen 2006-09-19
  • 打赏
  • 举报
回复
还是InvalidOperationException: Handle is not initialized
jointan 2006-09-14
  • 打赏
  • 举报
回复
protected override void Dispose(bool disposing)
{
//试试在这个位置写,理论上这个位置Conn还没被Dispose掉
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
limengchen 2006-09-14
  • 打赏
  • 举报
回复
没有form,在assembly(class library project)里
jackyped 2006-09-14
  • 打赏
  • 举报
回复
肯定是在closing中调用啊;
asus1111 2006-09-14
  • 打赏
  • 举报
回复
如果有form的话就在FormClosing事件里调用,不过好像要是出现错误非法关闭的话就很麻烦的

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧