2 回答
TA贡献1757条经验 获得超7个赞
如果InsertElement()每行要插入的数据都执行一次,那么对于大的no,执行会太慢。行。(此外,您正在SqlConnection为每个查询执行创建。)尝试使用单个 INSERT 查询一次添加多行:
INSERT INTO tablename
(c1,c2,c3)
VALUES
(v1,v2,v3),
(v4,v5,v6)
...
TA贡献1812条经验 获得超5个赞
不要为每个插入打开一个连接。使用一个连接,然后将该连接传递给您的插入,如下所示:
public void InsertElement(string link, string titolo, string text, SqlConnection conn)
{
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();
}
}
}
我还建议查看参数化您的查询,以及使用批量插入,而不是单个插入
- 2 回答
- 0 关注
- 124 浏览
添加回答
举报