我将sqlliteconnection对象分配给静态变量并在函数中初始化它。
在访问sqlliteconnection对象时,在某些情况下抛出“sqlconnection对象被处置”异常。据我所知,静态变量仅在应用程序关闭时处理。
示例代码:
public static SQLLiteConnection sql;
public void OpenConnection()
{
sql = new SQLLiteConnection ;
//assign sql lite file path
sql.Open();
}
public void GetStud()
{
OpenConnection();
//writing sqlcommand connection
}
}
答案 0 :(得分:0)
即使在静态对象上也可以调用Dispose()。它的目的是释放非托管资源(托管资源由GC自动释放)。仅在关闭应用程序后才会调用Dispose。只要没有对此对象的引用,它就会自动从finalizer方法(由GC调用)自动调用。它也会在使用块结束时调用。
无论如何,静态SqlConnection对象不是一个好主意。最好总是用“使用”创建新实例。
using (var conn = new SQLLiteConnection("connectionstring"))
{
conn.Open();
}//here is called Dispose()