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);
        }
}

c#中未指定的错误

我同意大家的意见,你们没有提供足够的信息给我们诊断问题的机会。

但是,尝试移动

OleDbConnection con = new OleDbConnection(...)

从timer1_Tick例程中取出,这样您就不必不断地重新建立连接,看看会发生什么。

我们通常获取连接并快速释放它们以利用连接池,但我不确定您是否会使用Jet获得连接池。这可能是你在有效地泄漏连接。
这只是一个猜测,但值得考虑。

OleDbConnection是一次性资源。必须手动处理,

剪:

可以使用using:

using (var con = new OleDbConnection(...)) {
}

或者如果你想把它的生命周期绑定到持有对象上,让持有对象本身成为IDisposable(你必须手动释放持有者,goto snip;)