DataSet如何批量更新?

ahhisoft 2006-08-29 09:41:18
我的数据库里现在有50W条记录。
现在我新加了一个字段,想要将这个字段Update成另一个字段的MD5加密
请问要怎么做?

疑点:我现在是用一个For循环去处理的,然后每条记录Update一下。这样效率太慢了。我想应该还有其它的方法。只是我对C#里的对象都不太熟悉。请高人指教!
...全文
331 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bjbr 2006-08-29
  • 打赏
  • 举报
回复
DataAdapter.Update(DataSet)方法也是在里面遍历,然后一行一行update,和楼主在外里遍历然后DataAdapter.Update(DataRow)没什么本质上的区别。

50W条记录不算少,能把MD5的算法写在sqlserver的函数之类的最好,如果用程序实现最快的办法是在前台拼sql语句,然后整段执行。
job_2006 2006-08-29
  • 打赏
  • 举报
回复
ahhisoft 2006-08-29
  • 打赏
  • 举报
回复
感谢 Eddie005(♂) №.零零伍 -- 再见了~ (♂)

您的方法非常好用!

:)

只不过10W条记录就让数据库JJWW了两分钟。
ahhisoft 2006-08-29
  • 打赏
  • 举报
回复
SQL里面有MD5的方法吗?
zhangxiaopin 2006-08-29
  • 打赏
  • 举报
回复
直接在SQL里Update
marysxj 2006-08-29
  • 打赏
  • 举报
回复
关注@学习!
ahhisoft 2006-08-29
  • 打赏
  • 举报
回复
To Eddie005(♂) №.零零伍 -- 再见了~ (♂) ( )

能给出稍微详细点的用法吗?

是不是Da.Update(ds)
这样直接用报错
Eddie005 2006-08-29
  • 打赏
  • 举报
回复
System.Data.SqlClient.SqlConnection cnn = new System.Data.SqlClient.SqlConnection("连接字符串");
System.Data.SqlClient.SqlCommand cm = new System.Data.SqlClient.SqlCommand();

cm.Connection = cnn;
cm.CommandText = "select top 10 * from table1";
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(cm);

DataTable dt = new DataTable();
da.Fill(dt);
da.FillSchema(dt,System.Data.SchemaType.Mapped);//这是必须的,要载入数据表结构


//下面插入多条数据
for(int i=0;i<10;i++)
{
DataRow newRow = dt.NewRow();
newRow[0] = 123;
newRow[1] = "abc";
//....
dt.Rows.Add(newRow);
}

//下面重新写回数据库
System.Data.SqlClient.SqlCommandBuilder cb = new System.Data.SqlClient.SqlCommandBuilder(da);//这句看起来没什么作用,但实际上很关键,如果没有这个就不能用da.Update方法
cnn.Open();
da.Update(dt);
cnn.Close();

dt.AcceptChanges();
Eddie005 2006-08-29
  • 打赏
  • 举报
回复
DataAdapter.Update()
ahhisoft 2006-08-29
  • 打赏
  • 举报
回复
在线等
解决马上给分~

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧