我有一个连接到Excel文件的函数:
public OleDbConnection connection;
public void eConnection(string srcString, string id)
{
conString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + srcString + "; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'";
connection = new OleDbConnection(conString);
connection.Open();
}
我想创建另一个函数,该函数在调用或调用时将关闭此现有连接
这是我必须尝试关闭现有连接的内容:
public void eCloseConnection()
{
connection.Close();
}
如何使用调用同一连接并将其关闭的函数来关闭现有连接
如何测试以查看连接是否关闭?
不要这样 OleDbConnection
实现IDisposable
接口应在使用完后立即处理,最好的方法是将其用作using
语句中声明的局部变量:
public void DoStuffWithExcel(string srcString)
{
conString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + srcString + "; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'";
using(var connection = new OleDbConnection(conString))
{
connection.Open();
// do your stuff here...
}
}
该using
语句确保即使using
块内发生异常,连接也将被正确处理。
这种方法是防止内存泄漏以及使用连接池的最佳方法。
从Microsoft文档页面OLE DB,ODBC和Oracle连接池:
我们建议您在使用完连接后始终关闭或处置该连接,以将连接返回到池中。未显式关闭的连接可能不会返回到池中。例如,超出范围但尚未显式关闭的连接仅在达到最大池大小且连接仍然有效时才返回到连接池。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句