所以我发现自己在苦苦挣扎,这是最好的做法。这是我第一次编写 C# 代码,也是十年来第一次编写任何代码。当我担任 php / sql 程序员时,我们通常不赞成为每个查询打开一个新连接的想法,但我今天在 google 上研究这个问题越多,特别是 C# 和 sqlite,似乎很多人推荐做对立面。
所以,我希望为你们中的一些人提出这个问题,显然他们所做的不仅仅是眼睛。这是我的数据库类的一般设置:
class DatabaseController
{
static private SQLiteConnection _sqlconn;
static private string _uri;
public static SQLiteConnection Sqlconn
{
get { return DatabaseController._sqlconn; }
set { DatabaseController._sqlconn = value; }
}
public static string Uri
{
get { return DatabaseController._uri; }
set { DatabaseController._uri = value; }
}
}
第二个类,它是主要的数据库类,它处理实际运行的查询等。我有 DatabaseController 类的原因是因为我可以将打开的连接句柄存储到静态成员 _sqlconn ,因此连接只打开一次,并且数据库对象只需使用相同的句柄,即使程序可以并且将创建许多数据库对象。
但是,这真的有必要吗?每次创建对象时,我是否应该简单地在主数据库类中打开一个新连接?我发现另一个站点和线程显然,.NET Framework 所做的是即使您为您维护一个连接池,所以即使您可能打开和处理多个连接,它们并没有真正关闭。真的是这样吗?这是否适用于桌面和 Windows 8 应用程序?