小编abi*_*ari的帖子

如何在C#中更改DataReader中的列名?

SqlDataReaderExecuteDataReader声明中返回了.

我想要的只是:在绑定到网格之前,在数据读取器中更改一些列名.

情况如下:

  1. 首先,我构建网格结构(结构在数据库中的表中,基于过去系统中存储过程的输出填充)
  2. 我执行数据读取器来执行存储过程
  3. 将数据读取器绑定到网格

问题是:如果存储过程中的一列是大写的,并且网格中的相关列是小写的,则网格不会填充.

我有很多基于这种架构的存储过程.其中一些有很多行要显示.因此,我使用数据读取器来提高性能.

  1. 我不想更改存储过程中的列名(太多工作)
  2. 我不想将数据读取器的结果复制到另一个数据持有者(因为开销和性能低)
  3. 我只是一种方法来更改数据读取器的列名称

    sqlDataReader阅读器; reader.executedatareadet();

例如,在返回数据读取器后,我有两列(A,B).

我想在将列绑定到网格之前将列更改'A''a'(转换为小写)reader.GetName(i)

我希望能够做类似的事情

reader.SetName(i)
Run Code Online (Sandbox Code Playgroud)

但它接缝我们无法更改数据读取器列名称

c# gridview sqldatareader

6
推荐指数
1
解决办法
1039
查看次数

聚合函数"Aggregate"不能在包含任何过滤器的报表中使用

我知道我们不能在矩阵中使用聚合函数作为过滤器.

这是AdventureWorks中的情况.我有三个级别:

  1. 类别
  2. 子目录
  3. 产品

和1个Calc_Member:

=With MEMBER Calc_Member as [Measures].[Internet Average Sales Amount]
Run Code Online (Sandbox Code Playgroud)

实际上:

[Measures].[Internet Average Sales Amount]=
[Measures].[Internet Sales Amount]/[Measures].[Internet Order Count]
Run Code Online (Sandbox Code Playgroud)

我希望层次结构中的每个级别都有不同的聚合.对于子类别和产品,folmula Calc_Member就像我之前提到的那样:

[Measures].[Internet Average Sales Amount]
Run Code Online (Sandbox Code Playgroud)

但是对于类别级别我想要相关子类别的平均值:

WITH MEMBER Calc_Member AS
    Average(existing [Product].[Subcategory].[Subcategory].members
    , [Measures].[Internet Average Sales Amount])
Run Code Online (Sandbox Code Playgroud)

在Analysis服务中,这可以正常工作,但我在基于此数据集的报告服务中有一个报告:

  • 类别
  • subcaegory
  • 产品
  • Calc_member

在ssrs中,我使用具有三个行组的矩阵,并为每个组添加总计.对于类别1,想要在ssrs中使用聚合函数(使用在分析服务中定义的Formlula),并且它再次正常工作.

但是,如果我想在某个成员(例如,类别,子类别,产品)上使用过滤器,则会抛出此错误:

聚合函数"Aggregate"不能在包含任何过滤器的报表中使用

而且这个错误也是可以接受的,但是我不喜欢的是:如果我在Matrix1中使用聚合函数并且我在Matrix2中使用过滤器,它也会抛出错误.

为什么?

aggregate matrix filter reporting-services ssrs-2008

5
推荐指数
1
解决办法
1846
查看次数

在SSAS中如何删除不同计数度量中的空值

我有列.fact table某行中的列有'Null'值.我有基于此列的度量,aggregate function设置为DistinctCount

这个度量计null数值也是如此.但我不想null数值,我该怎么办?

ssas mdx

0
推荐指数
1
解决办法
4625
查看次数