gpt4 book ai didi

c# - SQL 和 RAM...如何在不卡住应用程序的情况下更新 2000 条记录

转载 作者:行者123 更新时间:2023-11-30 19:31:38 24 4
gpt4 key购买 nike

我刚刚从一个 WinForms 应用程序运行了一个查询,该应用程序为 2k 条记录更新了 1 个字段,但通常会更多。唯一的问题是应用程序只是停止响应,更新 10 条记录大约需要 30 秒,这还不够好。我怎么搞砸了?

代码

using (SqlConnection conx = GetConnection())
{
conx.Open();
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = conx;

int counter = 0;
foreach (DataRow row in mainResultsTable.Rows)
{
if(controlResult)
{
thisSerial = row[2].ToString();
col = "[someColumn]";
}
cmd.CommandText = "UPDATE SomeTable$ SET [ToBeUpdated] = '" + DateTime.Now.ToString() + "' WHERE SomeColumn ='" + thisSerial.ToString() + "'";
cmd.ExecuteNonQuery();
counter++;
if (counter == 10)
{
MessageBox.Show("10");
}
}
}
}

附言。测试不是非常准确,我等待消息框弹出。

所以我最后做的是在 SQL Server 上创建一个临时表,导入上传数据并批量完成,操作完成后删除临时表,是否可取?

最佳答案

如果可能的话,您最好运行一个 SQL 调用来更新您的所有记录,这样会快得多。如果您可以使用参数定义执行此操作的查询,它应该会令人满意地更新。

或者,您必须考虑是否可以线程,这取决于您是否需要在继续之前完成它。

关于c# - SQL 和 RAM...如何在不卡住应用程序的情况下更新 2000 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6814512/

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