format存储过程中的数据

时间:2014-02-27 14:35:35

标签: c# asp.net sql sql-server tsql

稍作建议后。

我们正在使用过滤器生成标准数据列表。

此筛选列表可以有3个替代视图,表示不同庄园中的数据 我的问题是:

  • 存储过程是否应该以前端每个视图所需的格式返回数据?

  • 或业务层是否应该重新格式化数据?

我一直认为最好尽快进出数据库,并允许业务层处理格式化。

提前感谢任何建议

更新: - 通过格式化,

1个视图包含带有可滚动表的所有数据

2视图将使用标题对数据进行分组,(单击标题以展开以查看)

3视图会将数据分组到日期组中,并将日期显示为表格行标题(7天活动),数据计数将显示在这些内容中

2 个答案:

答案 0 :(得分:2)

  

我一直认为最好进出数据库   尽可能快,并允许业务层处理格式化。

简短的回答:正确,你已回答了自己的问题。

数据库将数据返回给您的应用程序,它的呈现方式取决于应用程序。当您想要向另一个应用程序提供相同的数据时会发生什么?您是否希望每次想要不同格式的数据时都要编写程序?当然不是。

  

1:视图包含具有可滚动表的所有数据

您无法从过程返回滚动窗口。无论如何,数据库将如何知道需要滚动多少数据?它不知道您正在使用的窗口/视口的大小。

  

2:视图将使用标题对数据进行分组,(单击标题以展开以查看)

这需要用户交互,这只是表示层的域。

  

3:视图会将数据分组到日期组中,并将日期显示为表格   行标题(7天intivials)和数据计数将显示   在那些intivals中

您可以从过程返回多个结果集,以提供结果和计数,但同样在应用程序中更容易处理。

答案 1 :(得分:0)

通常,您应该使用表示层来格式化数据输出。您可以让存储过程返回原始数据集,然后设置,例如3种不同的表示类型的3个不同的XSLT文件。这样,您始终可以执行DataTable.ToXML并将XSLT模板应用于此输出,以生成用户需要的格式。