我正在使用C#.net处理邮件演示应用程序。我得到错误,因为我超过了最大连接的限制。 在我的情况下,我需要逐个插入数据库到数据库,并在计时器的基础上经常检索。 它可能有5-10个邮件帐户,每个帐户可能有数千封电子邮件。 建议我管理sql连接的方法。
答案 0 :(得分:0)
你必须做三件事:
1.在连接字符串中包含以下元素:
pooled=true;Max Pool Size=100;
2.仅在连接状态关闭时打开新连接:
If dbCon.ConnectionState<>ConnectionState.Open Then
dbCon.Open()
End If
3.避免在循环内打开新连接。如果你使用循环
答案 1 :(得分:0)
获取Nuget包:https://www.nuget.org/packages/Nelibur.Sword
ITinyThreadPool threadPool = TinyThreadPool.Create(x =>
{
x.MaxThreads = 2;
x.MultiThreadingCapacity = MultiThreadingCapacity.Global;
});
然后只需使用此threadPool来处理数据库插入。另外,这种方式你不依赖于数据库池。
threadPool.AddTask(() => Insert(document))