我正在编写一些控制台应用程序来在 SQLite 数据库之间移动一些数据。连接的类和各种准备好的语句实现了 IDisposable,所以我使用using
块来实例化这些对象,如下所示:
using (SQLiteConnection sqlite_conn = new SQLiteConnection(connectionString))
{
sqlite_conn.Open();
using (SQLiteCommand sqlite_cmd = new SQLiteCommand())
{
sqlite_cmd.Connection = sqlite_conn;
sqlite_cmd.CommandText = "INSERT INTO SOMETHING SOMETHING;";
sqlite_cmd.ExecuteNonQuery();
}
sqlite_conn.Close();
}
但是,我需要能够在一种方法中创建这些连接,然后在其他方法中调用它们。对我来说,将这些连接存储为实例变量的最简洁、最容易混淆的方式是什么?我想确保.Dispose()
以一种智能的方式调用他们的方法,但看不到确保所有操作都发生在单个using
块的上下文中的好方法。
我意识到这是一个 C# 新手问题,所以请调整你的答案。如果您有建议的解决方案,如果您包含一个代码示例来说明,我会很高兴。
编辑:我的用例是一个控制台应用程序。有人传入源连接字符串和目标连接字符串,控制台应用程序执行操作。我真的会让我的控制台类程序本身像这样实现 IDisposable 吗?:
class Program : IDisposable
{
private SQLiteConnection sourceConnection;
private SQLiteConnection destinationConnection;
public void Dispose()
{
sourceConnection.Dispose();
destinationConnection.Dispose();
}
}