這是爲應用程序動態設置和呈現報告的數據。MDX查詢在報告中返回值,但不在Visual Basic代碼中
我有一個依賴於參數的報表的MDX查詢。查詢內容爲:
SELECT NULL ON COLUMNS, strtomember(@DateYear) ON ROWS FROM [MYDATACUBE]
在報表查詢設計器中運行時,它會正確返回一個值。但是,在Visual Basic代碼中運行時,它不會返回任何內容。這裏是我的代碼的重要組成部分:
Dim cn = New AdomdConnection(adomdparamconnectionstrings(countparamsadomd))
Dim da As AdomdDataAdapter = New AdomdDataAdapter()
Dim cmd = New AdomdCommand(paramcommands(countparamsadomd), cn)
Dim tbl = New DataTable
If (adomdparams) Then 'If there are parameters, adds them to the query
For l As Integer = 0 To (countparamsadomd - 1)
If (adomdparamconnectionstrings(l) = "NODATASET") Then
Dim p As New AdomdParameter(paramvaradomd(l), paramadomd(l))
cmd.Parameters.Add(p)
Else
Dim p As New AdomdParameter(paramvaradomd(l), adomdqueryvalues(l))
cmd.Parameters.Add(p)
End If
Next
End If
da.SelectCommand = cmd
cn.Open()
da.Fill(tbl)
cn.Close()
我知道連接字符串的工作,因爲所有其他數據集使用同一個。我知道命令是正確的使用斷點。我知道參數的值也是正確的,也使用斷點。我知道代碼的整體工作原理,因爲它適用於我測試過的每個數據集,除了這一個。使用中斷點,一切似乎都像其他數據集一樣工作,但它不會返回任何值。
由此產生的表具有正確命名的列([Date]。[Year]。[Year]。[MEMBER_CAPTION]),但沒有行。返回的值應該是包含年份的單行。
不必返回在列軸的任何數據,即'選擇NULL ON COLUMNS'。我在下面提供了一個示例,它返回參數化成員的MEMBER_CAPTION屬性。 – jhenninger