好的,这是场景。我认为这很常见,并且我在前世使用蛮力方法解决了它,但我认为必须有更好的方法。
给定一个有序的姓名列表,以及一个用户可以对列表重新排序、删除、编辑和添加姓名的 UI,您将如何更新存储在 SQL 数据库中的列表?
这是表定义:
CREATE TABLE [dbo].[AssyLines](
[AssyLineID] [int] IDENTITY(1,1) NOT NULL,
[ShortName] [varchar](16) NOT NULL,
[LongName] [varchar](45) NOT NULL,
[Seq] [tinyint] NOT NULL,
CONSTRAINT [PK_AssyLines] PRIMARY KEY CLUSTERED
我想要做的是从表中读取所有条目并在 UI 中按 Seq 顺序显示它们。然后用户可以编辑 ShortName 或 LongName,重新排序列表,添加新条目或删除现有条目,然后将修改后的列表保存回数据库。
这是一个客户端-服务器应用程序,如果这有什么不同的话。WCF 服务处理数据库交互,客户端只是向服务发送和从服务发送记录数组。
我的蛮力方法包括锁定表,删除所有条目,然后将新记录重写到表中——当然,所有这些都在事务中,使用存储过程和表变量或临时表。粗鲁但有效,但我不禁觉得有一种相当标准的方法可以做到这一点,而无需在每次有人进行小幅编辑时对表格进行核对并重新创建它。
有任何想法吗?我目前正在处理的应用程序中有 4 或 5 个这样的列表。
谢谢,戴夫