9

我想在 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 
4

1 回答 1

19

您需要使用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 上可用。这是微软官方维护的库。

于 2017-04-27T01:21:35.353 回答