0

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

案子:

表1输入:

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

表 1 输出:

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 行,每行都有单独的动态值)?

4

2 回答 2

1

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

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

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

于 2012-10-02T22:04:45.497 回答
1

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

如果您用 C# 编写算法 - 您可以让客户端程序(C# 代码)进行计算,然后使用UPDATE查询 - 更新对数据库的更改。但是对于大型数据库,这是非常低效和缓慢的(下载 100,000 行相当多) - 所以你应该考虑用 SQL 来编写。

于 2012-10-02T22:05:40.770 回答