在这种情况下如何更新所有行:MYSQL + C#动态代码,为每行计算不同的值

时间:2012-10-02 21:55:53

标签: c# .net mysql sql sql-update

(使用mysql + C#.net连接器)

案例:

table1输入:

item_id| long_name               |short_name
---------------------------------------------
56763  |MY NEW YORK 34 the great |
76878  |in the paris was really..|

table1输出:

item_id| long_name               |short_name
---------------------------------------------
56763  |MY NEW YORK 34 the great |NEW YORK
76878  |in the paris was really..|paris

我用C#代码计算short_name

如何使用UPDATE而不是TRUNCATE + INSERT INTO(真实表有超过100,000行,每行有动态值分开)?

2 个答案:

答案 0 :(得分:1)

您可以在DataTable中加载数据,使用C#函数更新列,然后更新数据库,如:

SqlDataAdapter.Update(Dataset.Tables["table1"]);

这会为每一行发送一个UPDATE语句。你应该考虑一下你的架构。你想达到什么目的?是否可以将逻辑放在触发器而不是C#代码中?您可以通过添加另一个条件(最近添加等)来减少必须更新的行数吗?

答案 1 :(得分:1)

我想你有一些算法可以从“长名”中返回“短名” 因此,您需要在SQL中实现它,并在MySQL服务器上执行它。

如果您使用C#编写算法 - 您可以使客户端程序(C#代码)执行计算,然后使用UPDATE查询 - 更新对数据库的更改。但对于大型数据库来说,效率非常低且速度很慢(下载100,000行) - 所以你应该考虑用SQL编写。