gpt4 book ai didi

c# - 如何在 C# 或 VB.NET 中使用 SqLite 连接池?

转载 作者:行者123 更新时间:2023-11-30 20:30:13 25 4
gpt4 key购买 nike

SqLite 的连接字符串可以包含使用连接池的选项,例如(伪代码)

Dim connectionString = "Data Source=" + Path + ";" +
"Version=3;" +
"Pooling=True;" +
"Max Pool Size=100;"

我希望有一些额外的类或工厂方法来使用连接池,例如

dim connectionPool = new SqLiteConnectionPool(connectionString)

dim firstConnection = connectionPool.getConnection()
...
firstConnection.dispose()

...
dim secondConnection = connectionPool.getConnection()

但是,我找不到这样的类。

=> 如何将连接返回到连接池

=> 如何重用之前返回到池中的连接

https://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki 上搜索“池”没有给出任何结果。

a) 我是否必须多次调用连接的构造函数?

dim firstConnection = new SqLiteConnection(connectionString)
...
firstConnection.dispose()


dim secondConnection = new SqLiteConnection(connectionString)

多次传递连接字符串对我来说似乎不太直观。

b) 或者我会只创建一次连接并在它关闭/处理后以某种方式唤醒它吗?

dim connection = new SqLiteConnection(connectionString))
using connection
...
end using

connection.open()
using connection
...
end using

最佳答案

SQLite 驱动程序将为您管理池,但是,有一个关键点很多人在使用连接时没有意识到。

晚开,早关

如果连接处于打开状态,则无法将其返回到池中。因此,您可以创建连接,准备语句,但是,仅在执行查询之前立即打开连接。

关于c# - 如何在 C# 或 VB.NET 中使用 SqLite 连接池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45111101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com