使用同一对象实例的 C# 多表单应用程序?
C# Multiple form application using same instance of object?
我有多个表单需要与数据库通信。我有一个嵌入式数据库 sqlite,它只需要一个 dll 文件。主窗体创建 SQLite 对象
using System.Data.SQLite;
...
public SQLiteConnection sqlite_conn;
public SQLiteCommand sqlite_cmd;
public SQLiteDataReader sqlite_datareader;
稍后在代码中初始化。
我的问题是,如果我有多种形式需要与数据库通信,最好的做法是给它们 using System.Data.SQLite
并创建它们自己的对象实例,或者以某种方式使用来自多种形式的相同对象,而不是同时...
Those classes aren't thread-safe,所以你不能一次实例化它们并在可见的表单之间共享它们(或者更准确地说,访问数据库)。
如果您觉得自己在到处复制代码,请将该代码放入 class 中并对其进行参数化,这样您就可以将 class 的一个实例注入到所有需要它的表单中.
Perhaps you can use Entity Framework,这有助于删除重复的数据库代码。
我有多个表单需要与数据库通信。我有一个嵌入式数据库 sqlite,它只需要一个 dll 文件。主窗体创建 SQLite 对象
using System.Data.SQLite;
...
public SQLiteConnection sqlite_conn;
public SQLiteCommand sqlite_cmd;
public SQLiteDataReader sqlite_datareader;
稍后在代码中初始化。
我的问题是,如果我有多种形式需要与数据库通信,最好的做法是给它们 using System.Data.SQLite
并创建它们自己的对象实例,或者以某种方式使用来自多种形式的相同对象,而不是同时...
Those classes aren't thread-safe,所以你不能一次实例化它们并在可见的表单之间共享它们(或者更准确地说,访问数据库)。
如果您觉得自己在到处复制代码,请将该代码放入 class 中并对其进行参数化,这样您就可以将 class 的一个实例注入到所有需要它的表单中.
Perhaps you can use Entity Framework,这有助于删除重复的数据库代码。