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

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

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>

1 Ответ

0 голосов
/ 27 июня 2011

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

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

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

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

...