Результат запроса ADOMD.Net неверный - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь использовать MSSQL Analysis Server. Я пытаюсь выполнить DMX-запрос, однако результат чтения не соответствует Студиям управления SQL Server, поскольку читатель выбрасывает ошибку индекса из-за пределов.

Я импортировал «Microsoft.AnalysisServices.AdomdClient.retail.amd64» V15.3.1 с NuGet, и я использую SQL Server 2017 Вот код теста приложений

 static void Main(string[] args)
    {
        AdomdConnection connection = new AdomdConnection("Data Source=localhost;Catalog=MultidimensionalProject2;");
        connection.Open();
        AdomdCommand command = new AdomdCommand("SELECT  PredictAssociation([Association].[v Machine Purchase Stat], 5) From  [Association]", connection);
        AdomdDataReader reader = command.ExecuteReader();
        List<object> asd = new List<object>();
        while (reader.Read())
        {
           Console.WriteLine(reader[1]); //Index out of bounds error
        }
        reader.Close();
        Console.ReadKey();
    }

Вот база данных и результат запроса

1 Ответ

0 голосов
/ 25 августа 2018

Я решил, что у читателя был другой читатель, который представлял собой второй шаг от дерева. Вот рабочий код.

 using (AdomdConnection connection = new AdomdConnection("Data source=localhost;initial catalog=MultidimensionalProject2;"))
        {
            connection.Open();
            using (AdomdCommand command = new AdomdCommand("SELECT PredictAssociation([Association].[v Machine Purchase Stat], 5) From  [Association]", connection))
            {
                using (AdomdDataReader reader = command.ExecuteReader())
                {                        
                    List<object> asd = new List<object>();
                    while (reader.Read())
                    {
                        var r2 = reader.GetData(0);
                        while (r2.Read())
                        {
                            Console.WriteLine(r2[1]);

                        }
                    }
                    reader.Close();
                }
            }
            connection.Close();
        }

        Console.ReadKey();
...