c#中未指定的错误
本文关键字:错误 未指定 | 更新日期: 2023-09-27 18:02:50
我写了一个程序,每1分钟写一次数据到2003 access数据库,20分钟后出现一个未指定的错误。什么好主意吗?
下面是代码
private void timer1_Tick(object sender, EventArgs e)
{
try
{
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=C:''DATA.MDB");
con.Open();
new OleDbCommand("UPDATE [DATA] SET Minute = Minute+1", con).ExecuteNonQuery();
con.Close();
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
}
我同意大家的意见,你们没有提供足够的信息给我们诊断问题的机会。
但是,尝试移动
OleDbConnection con = new OleDbConnection(...)
从timer1_Tick例程中取出,这样您就不必不断地重新建立连接,看看会发生什么。
我们通常获取连接并快速释放它们以利用连接池,但我不确定您是否会使用Jet获得连接池。这可能是你在有效地泄漏连接。 OleDbConnection
是一次性资源。必须手动处理,
剪:
可以使用using
:
using (var con = new OleDbConnection(...)) {
}
或者如果你想把它的生命周期绑定到持有对象上,让持有对象本身成为IDisposable
(你必须手动释放持有者,goto snip;
)