【发布时间】:2016-08-03 06:19:34
【问题描述】:
我的应用程序是多语言应用程序。在我的应用程序中,我创建了一个具有 2 个数据源的报告。两者都调用相同的过程并获取相同的数据。差异仅基于文化,将填充数据并显示表格。
它工作正常。但我面临的问题是,虽然我已经根据文化应用条件来显示表格,但它正在执行两个数据源。那就是我有一个不必要的数据库调用。
【问题讨论】:
标签: c# asp.net-mvc telerik telerik-reporting
我的应用程序是多语言应用程序。在我的应用程序中,我创建了一个具有 2 个数据源的报告。两者都调用相同的过程并获取相同的数据。差异仅基于文化,将填充数据并显示表格。
它工作正常。但我面临的问题是,虽然我已经根据文化应用条件来显示表格,但它正在执行两个数据源。那就是我有一个不必要的数据库调用。
【问题讨论】:
标签: c# asp.net-mvc telerik telerik-reporting
如果您的数据源来自 SQL,我相信您可以在带有报告参数的存储过程中做到这一点。 (我假设您的表在同一个数据库中,但您可以进行相应调整)
我将使用 AdventureWorks 数据库,我的 sp 从给定表中选择“名称”列:
CREATE PROCEDURE [dbo].[test] @table nvarchar(100) as
BEGIN
declare @sql nvarchar(1000)
SET @sql = 'SELECT Name FROM ' + @table
exec SP_EXECUTESQL @sql
END;
然后,配置数据源以执行存储过程,为@table 获取一个报告参数。在我的示例中,reportParameter="Person.AddressType" 或 "Person.ContactType" 会给出不同的结果。
在您的情况下,根据文化更改报告参数。现在您只需要一张桌子而不是两张。
【讨论】: