【发布时间】:2015-04-26 13:14:11
【问题描述】:
我知道存储过程中不存在数组格式,更不用说二维数组了。但是我使用 CSV 字符串来存储使用逗号分隔符的数组的值。我的主要问题是我是否可以在另一个分隔符的帮助下以相同的方式以二维格式存储我需要的值。如果是,任何人都可以指导我以正确的方式做到这一点吗?
我的桌子是这样的......
UserID | ItemID
---------------------------
User1 1
User1 2
User2 3
User2 1
我需要的是创建一个二维结果,我为每个项目存储请求它的用户。所以我想创建一个这样的csv字符串......
"1:User1,User2,2:User1,3:User2"
类似于格式的东西是可能的,在存储过程中创建它并将字符串拆分为 c# 中的二维数组。
【问题讨论】:
-
不要去那里。使用一个表来实现类数组结构,或者使用 2 个具有 1 对多关系的表来实现一个锯齿状数组类结构。几乎在任何情况下都应该避免在数据库表中保留分隔字符串(在我 16 年的编程中,只有一次我选择将值作为分隔字符串存储在数据库中,这只是因为我将它们用作数据库之外的分隔字符串)。
-
我不想将字符串存储在数据库中。我只需要在存储过程中创建一个这样的字符串并将其传递给我可以解释为二维数组的 c# 代码。如何做到这一点??
-
也不要去那里。使用 select 语句填充 DataTable 并将其转换为 c# 代码中的二维数组。在 c# 中做这种事情要容易得多,而且会比在 t-sql 中更快地工作。
标签: c# arrays sql-server csv