如何使用C#代码通过ASP.Net处理多维数据集或访问联机分析处理数据库?在C#.Net中,将使用什么组件来连接联机分析处理数据库或分析服务中的流程操作?
发布于 2010-05-06 22:52:27
对于处理,使用Microsoft.AnalysisServices库,示例代码如下所示:
Server server = new Server();
server.Connect(cubeConnectionString);
Database database = server.Databases.FindByName(databaseName);
Cube cube = database.Cubes.FindByName(cubeName);
cube.Process(ProcessType.ProcessFull);
对于查询,使用Microsoft.AnalysisServices.AdomdClient库,示例代码如下:
using (Adomd.AdomdConnection adomdConnection = new Microsoft.AnalysisServices.AdomdClient.AdomdConnection())
{
adomdConnection.ConnectionString = cubeConnectionString;
Adomd.AdomdCommand adomdCommand = new Microsoft.AnalysisServices.AdomdClient.AdomdCommand();
adomdCommand.Connection = adomdConnection;
adomdCommand.CommandText = mdxQuery;
adomdConnection.Open();
cellSet = adomdCommand.ExecuteCellSet();
adomdConnection.Close();
}
请注意,这两个名称空间重叠,因此如果在同一位置使用它们,则可能需要使用别名。
http://msdn.microsoft.com/en-US/library/ms124924(v=SQL.90).aspx
http://msdn.microsoft.com/en-us/library/ms123483(v=SQL.90).aspx
发布于 2014-10-01 01:12:37
您必须处理数据库,而不是多维数据集。因为多维数据集内部只有度量值,没有维度。这可能会产生一些冲突。
要处理所有、多维数据集和维度,必须处理整个数据库:
Server server = new Server();
server.Connect(cubeConnectionString);
Database database = server.Databases.FindByName(databaseName);
database.Process(ProcessType.ProcessFull);
发布于 2014-06-26 13:37:39
回答这个已经在上面分享了,但只是分享,我也使用了相同的Microsoft.AnalysisServices通过API参考从my blog post下载的示例项目来处理来自C#的多维数据集,但当维度数据发生变化时,您需要处理数据库,而不是多维数据集。
此外,当必须在服务器上模拟最终用户标识时,还可以使用连接字符串的EffectiveUserName属性。
注意:若要使用EffectiveUserName属性,调用方必须在Analysis Services中具有管理权限。
https://stackoverflow.com/questions/2779077
复制相似问题