2010-04-12 170 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之間傳輸變化,因爲你必須保持表的結構和內容同步。

相關問題