ADOMD.Net查询结果不正确

时间:2018-08-24 10:31:04

标签: c# .net sql-server sql-server-2017 adomd.net

我正在尝试使用MSSQL Analysis Server。我正在尝试执行DMX查询,但是读取器的结果与SQL Server Management Studios不符,因为读取器将索引超出范围错误。

我已使用NuGet导入了“ Microsoft.AnalysisServices.AdomdClient.retail.amd64” V15.3.1,并且正在使用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();
    }

这里是databasequery

的结果

1 个答案:

答案 0 :(得分:0)

我已经很好地解决了这个问题,读者中有另一个读者,它代表了树的第二步。 这是工作代码。

 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();