2010-04-12 110 views
0

我想允许用户添加列到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上工作。

谢谢。

+0

你预计这个东西会存储多少数据?我假设你也声称一个标准的'DataTable'将效率太低? – Thomas 2010-04-12 15:03:48

+0

这将成为网站的主表,所以它需要可扩展性。因此我只想使用基于对象的解决方案。 – SirMoreno 2010-04-12 15:17:17

回答

0

我相信这基本上是WebParts.SqlPersonalizationProvider的工作原理,这并不一定意味着它是最好的,但确实意味着在一些聪明的人想了一会之后,这就是他们想出来的。

在给定字段上排序会有点棘手,特别是如果字段文本需要非文本排序(即,如果您希望“2”在“10”之前)。

我建议从C#开始,对ColumnsDefinition执行一个查询,并根据这个查询选择几个不同的查询中的一个来选择/排序数据。

0

将一个DefaultValue添加到ColumnDefinition中。如果该值不是默认值,则仅在ColumnsValues中添加一个值。这会加速很多事情。

我讨厌这类系统的事情是,很难在dev/stage/production之间传输变化,因为你必须保持表的结构和内容同步。

相关问题