C# 4.0 如果列在整个列中包含(全部)成员,则在使用ADOMD适配器检索数据后删除该列

C# 4.0 如果列在整个列中包含(全部)成员,则在使用ADOMD适配器检索数据后删除该列,c#-4.0,mdx,adomd.net,C# 4.0,Mdx,Adomd.net,我使用以下C#代码片段使用MDX查询和ADOMD适配器从多维数据集中检索数据: public DataTable GetDataTable(string query, string connectionString) { DataTable data = new DataTable(); using (AdomdConnection cubeConnection = new AdomdConnection(connectionString)) { cube

我使用以下C#代码片段使用MDX查询和ADOMD适配器从多维数据集中检索数据:

public DataTable GetDataTable(string query, string connectionString)
{
    DataTable data = new DataTable();
    using (AdomdConnection cubeConnection = new AdomdConnection(connectionString))
    {
        cubeConnection.Open();
        try
        {
            using (AdomdDataAdapter adapter = new AdomdDataAdapter(query, cubeConnection))
            {
                adapter.Fill(data);
            }
        }
        catch (Exception)
        {
            throw new Exception("An error occurred while retrieving the data");
        }
    }
    return data;
}
我编写的查询在SSMS中返回以下结果:

使用上述代码检索数据后,将删除整个列,如下所示(截图取自Visual Studio中的data Table Visualizer):

如上所示,正在删除第二列。有人有将列放入数据表的解决方案吗

其他信息:

AdomdClient Dll名称:Microsoft.AnalysisServices.AdomdClient


AdomdClient Dll版本:11.0.0.0

这是设计的,尽管有点违反直觉。返回的维度列数将基于返回的级别减去1


由于您只返回一个级别(即All),ADOMD将显示零列。如果返回二维级别(即All+Name),则会在结果中看到Name列

这是出于设计,尽管有点违反直觉。返回的维度列数将基于返回的级别减去1


由于您只返回一个级别(即All),ADOMD将显示零列。如果返回二维级别(即All+Name),则会在结果中看到Name列

您可以发布您的查询吗?在列上选择{[Measures].[Unit Price]},{[Product].[Color].[Color].[Color].[]}.*[Product].[Name].[All]在[Adventure Works LT2008]的行上;此查询是在基于Adventure Works LT2008数据库服务器实例构建的自定义多维数据集上触发的:SQL Server 2012是否可以发布查询?在列上选择{[Measures].[Unit Price]},在[Adventure Works LT2008]中的行上选择{[Product].[Color].[]}.[Product].[Name].[All];此查询是在基于AdventureWorksLT2008数据库服务器实例SQL Server 2012构建的自定义多维数据集上激发的