C#SQL:实现动态表的最佳方式是什么?
问题描述:
我想允许用户添加列到UI中的表格。C#SQL:实现动态表的最佳方式是什么?
的UI:列名:______列类型:数值/字符串/日期
我的问题是如何建立SQL表和C#对象,这样的实施将是高效和可扩展。
我的想法是要建立两个SQL表:
TBL 1 - ColumnsDefinition:
ColId,COLNAME,ColType [文字]
TBL 2 - ColumnsValues:
RowId的,ColId,Value [Text]
我想要解决方案在数据库空间效率高,
我想让用户排序动态列。
我在.NET 3.5/SQL Server 2008上工作。
谢谢。
答
我相信这基本上是WebParts.SqlPersonalizationProvider的工作原理,这并不一定意味着它是最好的,但确实意味着在一些聪明的人想了一会之后,这就是他们想出来的。
在给定字段上排序会有点棘手,特别是如果字段文本需要非文本排序(即,如果您希望“2”在“10”之前)。
我建议从C#开始,对ColumnsDefinition执行一个查询,并根据这个查询选择几个不同的查询中的一个来选择/排序数据。
答
将一个DefaultValue添加到ColumnDefinition中。如果该值不是默认值,则仅在ColumnsValues中添加一个值。这会加速很多事情。
我讨厌这类系统的事情是,很难在dev/stage/production之间传输变化,因为你必须保持表的结构和内容同步。
你预计这个东西会存储多少数据?我假设你也声称一个标准的'DataTable'将效率太低? – Thomas 2010-04-12 15:03:48
这将成为网站的主表,所以它需要可扩展性。因此我只想使用基于对象的解决方案。 – SirMoreno 2010-04-12 15:17:17