我在 C# 中遇到了 SqlConnection 问题。我做了大量的INSERT NonQuery,但是无论如何SqlConnection 总是保存在数据库中的前573 行。这是我用于查询的方法。在这种方法中有一个锁,因为我使用不同的线程来保存数据。
public void InsertElement(string link, string titolo, string text)
{
string conString = "*****************";
using (SqlConnection connection = new SqlConnection(conString))
{
connection.Open();
text = text.Replace("\"", "");
DateTime localDate = DateTime.Now;
lock (thisLock)
{
string query = "IF (NOT EXISTS(SELECT * FROM Result " +
" WHERE Link = '" + link + "')) " +
" BEGIN " +
" INSERT INTO Result ([Titolo],[Link],[Descrizione],[DataRicerca],[FKDatiRicercheID]) " +
" VALUES('" + titolo + "', '" + link + "', '" + text + "', '" + localDate + "', 1) " +
" END";
if (connection != null)
{
SqlCommand cmd = new SqlCommand(query, connection);
cmd.ExecuteNonQuery();
}
}
}
}
这是调用方法 InsertElement() 的循环代码
public void Save()
{
string[] DatiLetti;
string url = "";
while (result.Count > 0)
{
try
{
url = result.Last();
result.RemoveAt(result.Count - 1);
DatiLetti = ex.DirectExtractText(url);
if (DatiLetti[0].Length > 2)
{
ssc.InsertGare(url, DatiLetti[0], DatiLetti[1]);
}
}
catch (Exception exc)
{
logger.Error("Exception SpiderSave> " + exc);
}
}
}
结果是一个由其他线程逐渐填充的易失性数组。我确信该数组包含超过 573 个项目。
我尝试搜索一个解决方案,但所有答案都说 SQLServer 的数据库连接数一次超过 32K,我已经在我的数据库中检查了这个数字。有没有人可以帮助我理解问题?
长风秋雁
ABOUTYOU
相关分类