如何在C#中执行SQL分析服务器的MDX查询

10

我希望能在C#中执行一条SQL分析查询。使用以下代码,我已成功连接到分析数据库:

Server DM_Server = new Server();
Database AS_Database = new Database();
DM_Server.Connect(//SQL Analysis Server Connection String);
AS_Database = DM_Server.Databases[//Database name];

我有一个类似于SQL查询的语句

SELECT FLATTENED PredictAssociation()
From
[Mining Structure Name]
NATURAL PREDICTION JOIN
(SELECT (SELECT 1 AS [UserId]) AS [Vm]) AS t 
1个回答

20
你需要使用 ADOMD.NET,它是 Microsoft.AnalysisServices.AdomdClient 命名空间。它也可以在 Nuget 上获得。
AdomdConnection conn = new AdomdConnection(
    "Data Source=localhost;Catalog=YourDatabase");
conn.Open();

string commandText = @"SELECT FLATTENED 
    PredictAssociation()
    From
    [Mining Structure Name]
    NATURAL PREDICTION JOIN
    (SELECT (SELECT 1 AS [UserId]) AS [Vm]) AS t ";
AdomdCommand cmd = new AdomdCommand(commandText, conn);
AdomdDataReader dr = cmd.ExecuteReader();

while (dr.Read())
{
   Console.WriteLine(Convert.ToString(dr[0]));
}

dr.Close();
conn.Close();

在代码示例中,我借用了问题中的DMX查询。但是任何MDX或DAX查询也应该可以工作。

更新:.NET Core的ADOMD.NET(Microsoft.AnalysisServices.AdomdClient)现在可以在Nuget上获取。这是一个由微软官方维护的库。


GregGalloway:我已经想出了这个答案。但无论如何还是谢谢。 - Quest
6
@BhavnaBeri 当然可以。下次您可以发布自己的答案来帮助社区。很高兴您解决了问题。 - GregGalloway
1
注意:目前ADOMD.NET在.NET Core上无法使用。 - Isaac Lyman
1
@IsaacLyman 我已经添加了一个链接到官方维护的 .NET Core 版本。 - GregGalloway

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接