如何在c#中从mdx查询中检索数据?
我正在尝试使用Adomdclient库从MDX查询中获取数据。我依靠这个例子 MDX查询:如何在c#中从mdx查询中检索数据?,c#,mdx,adomd.net,C#,Mdx,Adomd.net,我正在尝试使用Adomdclient库从MDX查询中获取数据。我依靠这个例子 MDX查询: SELECT {[Measures].[Cantidad Vta],[Measures].[Monto Vta],[Measures].[ExistenciaHistorica],[Measures].[Valor Inventario historico]} DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS , NON EMPTY Hierarchiz
SELECT {[Measures].[Cantidad Vta],[Measures].[Monto Vta],[Measures].[ExistenciaHistorica],[Measures].[Valor Inventario historico]} DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS , NON EMPTY Hierarchize({DrilldownLevel({[DIM SUBMARCA].[Código].[All]})}) DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON ROWS FROM (SELECT ({[DIM TIENDA].[JERARQUIA TIENDA].[Región].&[Bodega],[DIM TIENDA].[JERARQUIA TIENDA].[Región].&[Cadena],[DIM TIENDA].[JERARQUIA TIENDA].[Región].&[Outlet]}) ON COLUMNS FROM [JUGUETRONHQ]) WHERE ([DIM FECHA VENTA].[JERARQUIA FECHA VENTA].[Time].&[2012-01-01T00:00:00],[DIM FECHA EXISTENCIA].[JERARQUIA FECHA EXISTENCIA].[All]) CELL PROPERTIES VALUE
与其他名称空间(如SqlClient)一样,使用连接、命令和数据读取器:
using Microsoft.AnalysisServices.AdomdClient;
...
using (AdomdConnection con = new AdomdConnection(connection_string))
{
con.Open();
using (AdomdCommand command = new AdomdCommand(query, con))
{
using (AdomdDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
Console.Write(reader[i] + (i == reader.FieldCount - 1 ? "" : ", "));
Console.WriteLine("");
}
}
}
}
它必须是:
115200081, , , 3, 825
可能需要强制转换,但我不知道如何执行。这似乎是MDX查询的问题,而不是数据检索的问题。它没有正确地约束[DIM SUBMARCA].[Código]维度。您的查询有1个[ALL]级别维度和4个度量:
[DIM SUBMARCA].[Código].[All],
[Measures].[Cantidad Vta],
[Measures].[Monto Vta],
[Measures].[ExistenciaHistorica],
[Measures].[Valor Inventario historico]
这将检索1[ALL]列和4个值:
[DIM SUBMARCA][Código][All]、3825
115200081是一个关键值?您可以使用“维度属性成员”获取此值。从MDX查询中检索数据
添加了Microsoft.AnalysisServices.AdomdClient.dll的参考ADOMD连接步骤
AdomdConnection con = new AdomdConnection("connectionstring"); // connect DB con.Open(); AdomdCommand cmd = new AdomdCommand("MDX query", con); //query
AdomdDataReader reader = cmd.ExecuteReader(); //Execute query
while (reader.Read()) // read
{
Data dt = new Data(); // custom class
dt.Gender = reader[0].ToString();
dt.Eid = reader[1].ToString();
dt.salary = reader[2].ToString();
data.Add(dt);
}
我使用excel上的这个插件得到这个查询。电子表格正确显示了windows身份验证连接的查询(115200081,3825)连接字符串string=“Data Source=ServeName;Integrated Security=SSPI;Initial Catalog=DBName;”;
AdomdConnection con = new AdomdConnection("connectionstring"); // connect DB con.Open(); AdomdCommand cmd = new AdomdCommand("MDX query", con); //query
AdomdDataReader reader = cmd.ExecuteReader(); //Execute query
while (reader.Read()) // read
{
Data dt = new Data(); // custom class
dt.Gender = reader[0].ToString();
dt.Eid = reader[1].ToString();
dt.salary = reader[2].ToString();
data.Add(dt);
}