Создание раскрывающегося списка с использованием данных куба анализа

Итак, я работаю над проектом, который требует от меня создания раскрывающегося списка с использованием данных из куба службы анализа. Это то, что я придумал, погуглив.

protected void Page_Load(object sender, EventArgs e)
    {   DataTable dt = new DataTable();
        AdomdConnection conn = new AdomdConnection();
        conn.ConnectionString = "Data Source=RRLR87G4XE-1;Provider=MSOLAP";
        conn.Open();

        AdomdCommand cmd = new AdomdCommand();
        cmd = conn.CreateCommand();
        cmd.Parameters.Add("DimProductRegion", "Bike");
        cmd.CommandText = "SELECT {[Dim Product].[Region].children} ON ROWS, {} ON COLUMNS FROM [Adventure Works]";

        AdomdDataAdapter da = new AdomdDataAdapter(cmd);
        da.Fill(dt);


        ddlRegionFilter.DataSource = dt;
        ddlRegionFilter.DataTextField = "ParameterCaption";
        ddlRegionFilter.DataValueField = "ParameterValue";
        ddlRegionFilter.DataBind();}

но проблема в том, что он не будет отображать результаты в раскрывающемся списке. выпадающий список просто пуст.

<asp:DropDownList ID="ddlRegionFilter" runat="server" AutoPostBack=true >
</asp:DropDownList>

person unoho    schedule 27.06.2011    source источник
comment
Просто вопрос для уточнения? Использовать язык asp.net или классический asp?   -  person Reporter    schedule 27.06.2011


Ответы (1)


Я думаю, что ваша проблема может быть связана с тем, что ваш MDX не возвращает никаких значений. Хотя в возвращаемом наборе ячеек будут перечислены регионы, имена регионов будут в своего рода заголовке (аналогично имени столбца SQL или имени поля).

Отладьте свой код и посмотрите, что находится внутри datatable. Нет рядов?

Основная часть таблицы данных не будет содержать никаких значений (чисел или текста), потому что вы сказали {} ON COLUMNS. Вы все еще можете получить то, что вам нужно, изменив то, что вы подключаете к .DataTextField, но есть и другой способ.

ADOMD предоставляет способ опросить OLAP-куб, чтобы узнать, какие у него измерения, какие члены находятся в каждом измерении, не запрашивая у него никаких значений (в некотором смысле, вы можете запрашивать у него текст, но не числа!). Например, вы можете попросить его перечислить имена доступных мер, не спрашивая, каково значение меры. В этом случае вам нужен объект ADOMD Catalog. Если вы спросите, в нем будут перечислены все элементы измерения «Продукт» на уровне «Регион».

person Magnus Smith    schedule 27.06.2011