我一直在反对这一点,我敢肯定我只是错过了一些明显的东西,但是......
我在客户的数据库中有一个表,基本上是:
Item_Set_Key int
Item_1 bit
Notes_1 nvarchar(80)
Item_2 bit
Notes_2 nvarchar(80)
Item_3 bit
Notes_3 nvarchar(80)
...
每条记录中有 99 项,并且不更改架构不是一种选择(涉及其他外部考虑)。
然而,为了向用户显示任何远程类似于智能的东西,我们必须像这样(通过视图)对其进行 UNPIVOT:
SELECT i.Item_Set_Key, i.Item_Number, i.Selected, i.Item, i2.Notes, i2.Note
FROM (
SELECT Item_Set_Key, SUBSTRING (Item, 6, 2) AS Item_Number, Selected, Item
FROM Item_Set
UNPIVOT (Selected FOR Item IN
(Item_1, Item_2, Item_3, Item_4, Item_5, ...)
) as u
) AS i
LEFT JOIN (
SELECT Item_Set_Key, SUBSTRING (Note, 7, 2) AS Item_Number, Notes
FROM Item_Set
UNPIVOT (Notes FOR Note IN
(Notes_1, Notes_2, Notes_3, Notes_4, Notes_5, ...)
) as n
) AS i2 ON i2.Item_Set_Key = i.Item_Set_Key
AND i2.Item_Number = i.Item_Number
我将其标准绑定到网格。但是,我不知道如何为其构建 UpdateCommand,因为文本必须明确命名 SET 中的列,但列名在 Item 和 Note 列中是动态的,我可以'不只是设置所有列,因为每条记录只有一个项目/注释对的数据。
想法?