2012-11-02 27 views
0

我使用下面的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:

enter image description here

使用上述代碼檢索數據後,如下所示被移除整個列(截圖從數據表中展示臺顯示拍攝UAL工作室):

enter image description here

如上所見,第二列被移除。任何人都有一個解決方案讓列進入數據表?

附加信息:

AdomdClient DLL名稱:Microsoft.AnalysisServices.AdomdClient

AdomdClient DLL版本:11.0.0.0

+0

你能發表您的查詢嗎? – Rick

+0

選擇{ \t [措施] [價格] } ON COLUMNS ,{[產品]。[顏色] [顏色] .MEMBERS- [產品]。[顏色] []} * [產品] [名稱] [全部] ON ROWS FROM [Adventure Works LT2008]; 此查詢在基於Adventure Works LT2008數據庫構建的自定義多維數據集上觸發服務器實例:SQL Server 2012 –

回答

1

這是由設計,雖然有點直覺。返回的維度列的數量將基於返回的級別減1。

由於您只返回單個級別(即全部),因此ADOMD將顯示零列。如果您返回二維層次(即全部+名稱),則會在結果中看到名稱列。