我有一个由MDX查询填充的DataTable。我想将DataTable绑定到GridView并显示返回的所有数据。我的GridView定义如下:
<asp:GridView ID = "gvResults" runat="server" AutoGenerateColumns="true" />
调用MDX查询如下:
DataTable mdxResults = new DataTable();
CellSet cellSet;
AdomdCommand command = new AdomdCommand();
strCommand = "SELECT NON EMPTY({[Measures].[Assets Distinct Count], [Measures].[Value]}) " +
"ON COLUMNS, NONEMPTY({[Organization].[Org Id].[Org Id]*[Location].[Loc Id].[Loc Id]}) " +
"ON ROWS FROM [database]"
command.Connection = _CurrentConnection;
command.CommandText = strCommand;
cellSet = command.ExecuteCellSet();
AdomdDataAdapter dataAdapter = new AdomdDataAdapter(command);
objDataAdapter.Fill(mdxResults);
可以从MDX查询生成的DataTable示例:
Organization Location Assets Value
Org A Los Angeles 12 320000
Org B San Jose 6 21000
资产和价值是来自MDX查询的汇总度量。
在重命名列后,DataTable将绑定到GridView:
gvResults.DataSource = mdxResults;
gvResults.DataBind();
绑定DataTable后,只有一部分列显示在GridView中。具体来说,将显示除MDX查询中的Measure列之外的所有列。
任何帮助都将不胜感激。
答案 0 :(得分:0)
问题最终是MDX查询将为DataTable填充类型为Object的测量结果,而AutoGenerateColumns不支持。为了纠正这个问题,我在此处使用解决方案在绑定到GridView之前更改DataType: How To Change DataType of a DataColumn in a DataTable?