1

我正在使用以下 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 中的数据表可视化工具的屏幕截图):

在此处输入图像描述

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

附加信息:

AdomdClient Dll 名称:Microsoft.AnalysisServices.AdomdClient

AdomdClient Dll 版本:11.0.0.0

4

1 回答 1

1

这是设计使然,尽管有些违反直觉。返回的维度列数将基于返回的级别减一。

由于您只返回一个级别(即全部),ADOMD 将显示零列。如果您返回二维级别(即全部 + 名称),那么您将在结果中看到名称列。

于 2012-11-09T20:24:42.197 回答