我有一些代码可以检索数据表,处理表中的数据,然后再次释放所有资源。我想知道是否确实能够妥善处理所有资源。
询问的原因是我认为代码是故障安全的,但显然在重命名表时它没有正确处理资源。我知道这一点,因为它连接的访问数据库在代码执行后保留了一个记录锁。
编辑:为什么这个代码在我使用表重命名后执行后会保持与数据库的连接打开,如何在没有重命名的情况下确保所有资源都被正确处理?
try
{
using (OleDbConnection conn = new OleDbConnection(connString))
{
using (var table = new DataSet.PartsDataTable())
{
//table.TableName = @"AltName"; // This messes up release of resources
using (var partAdapter = new PartsTableAdapter())
{
try
{
partAdapter.Connection = conn;
partAdapter.Fill(table);
}
catch (Exception e)
{
throw new Exception("test");
}
}
foreach(var row in table)
{
//Process the rows.
}
}
}
}
catch(exception e)
{
//Handle.
}