我们使用 ac# 应用程序 (Ranorex) 通过 ODBC 连接连接到 Microsoft Access (.mdb) 数据库。在代码的单次运行期间,我们没有收到任何错误,并且连接成功。基本上,代码打开一个到数据库的连接,从数据库中检索数据,然后我们在完成后对数据库连接使用 .close 方法。但是,当代码在几天后在循环中连续运行时,会显示以下错误:“线程无法启动”。
这发生在(尝试)打开 ODBC 连接时。有人对如何解决这个问题有任何建议吗?
谢谢
这只是一个例子。我无法通过直接引用您的代码来回答您的问题,因为没有代码可供查看。但是,使用数据库连接等昂贵资源时要遵循的模式始终是相同的:Create, Open, Use, Close, Destroy
using(OdbcConnection con = new OdbcConnection(conString))
using(OdbcCommand cmd = new OdbcCommand(commantText, con))
{
OdbcDataAdapter da = new OdbcDataAdapter(cmd);
con.Open();
DataSet ds = new DataSet();
da.Fill(ds, "Table");
dataGridView1.DataSource = ds.Tables[0];
}
using 语句在这里起着基本的作用。当代码从 using 块中退出时,命令被释放,连接被关闭然后被释放。此外,如果您在 using 块的中间遇到异常。这是一个非常方便的写作替代品try{....}finally{close/dispose}
。当然,我不能声称这会解决您的问题,但是这仍然first aid
适用于您的代码。