我正在尝试使用MSSQL分析服务器。我正在尝试执行一个DMX查询,但是读取器的结果与SQL Server Management Studios不一致,因为读取器抛出索引越界错误。
我已经使用NuGet导入了"Microsoft.AnalysisServices.AdomdClient.retail.amd64“V15.3.1,并且我使用的是SQL Server2017。下面是测试应用程序代码
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();
}发布于 2018-08-26 02:18:37
我已经解决了它,很明显,阅读器中有另一个阅读器,它代表了从树开始的第二步。以下是工作代码。
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]);
}
}
}
}
}
Console.ReadKey();编辑:删除不必要的关闭调用。
https://stackoverflow.com/questions/52002566
复制相似问题