Ssas 如何使用DataAdapter/DataSet获取#error(且不为null)

Ssas 如何使用DataAdapter/DataSet获取#error(且不为null),ssas,mdx,adomd.net,Ssas,Mdx,Adomd.net,我有一个MDX查询: with member [Measures].[Error Measure] as 1/[Measures].[Non Existing] select [Measures].[Error Measure] on 0 from [MyCube] 其中,[Measures].[Non-Existing]在MyCube中不存在 如果我尝试在SSMS中执行此查询,我将收到一个包含一个单元格的单元格集,内容将为#error(以及工具提示中的明确消息) 另一方面,如果我创建一个Ad

我有一个MDX查询:

with member [Measures].[Error Measure] as 1/[Measures].[Non Existing]
select [Measures].[Error Measure] on 0 from [MyCube]
其中,[Measures].[Non-Existing]在MyCube中不存在

如果我尝试在SSMS中执行此查询,我将收到一个包含一个单元格的单元格集,内容将为#error(以及工具提示中的明确消息)

另一方面,如果我创建一个AdomdCommand并使用以下命令执行此查询:

var adapter=new AdomdDataAdapter(command.CommandText,connection);
var ds=新数据集();
适配器。填充(ds);
我不会收到异常,我的数据集将加载一个唯一的行和一个唯一的列,内容将为空。我已经研究了GetColumnError()方法,但没有指定任何内容


有没有办法知道此单元格有错误且不为空(不更改为单元格集)?

我不知道
AdomdCommand
s的解决方案,但在MDX中:您可以使用
IsError
方法,它实际上不是MDX,而是VBA方法:

with member [Measures].[Error Measure] as 1/[Measures].[Non Existing]
     member [Measures].[Error Indicator] as IIf(IsError([Measures].[Error Measure]), 'error', 'ok')
     member [Measures].[Error or Orig] as IIf(IsError([Measures].[Error Measure]), 'error', [Measures].[Error Measure])
select { [Measures].[Error Measure], [Measures].[Error Indicator], [Measures].[Error or Orig] } on 0
from [MyCube]
好的,不是我所期望的(我一直在寻找一些非常有用的东西,以至于我认为不可能知道该列在ADOMDCOMMAND中出错),但可能会使用VBA解决方案