Microsoft . 技术之路...

—— 专注于微软技术, 分享是快乐的源泉......
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C#中使用ADOMD.net的示例(FROM MSDN)

Posted on 2006-04-07 14:47  赣江源  阅读(169)  评论(0编辑  收藏  举报

 
ado 的

OleDbConnection Myconn = new OleDbConnection(ConfigurationSettings.AppSettings["sql_olap"]);
OleDbCommand Mycommand = Myconn.CreateCommand();
Myconn.Open();
string nUserCount="";
string strMdx = "select {[Measures].[Unit Sales]} on columns,{[Time].[1997]} on rows from [Sales]";
//string strMdx = "select {[Measures].[Unit Sales]} on columns, order(except([Promotion Media].[Media Type].members,{[Promotion Media].[Media Type].[No Media]}),[Measures].[Unit Sales],DESC) on rows from Sales";
Mycommand.CommandText = strMdx;
OleDbDataReader myReader = Mycommand.ExecuteReader();
while(myReader.Read())
{
nUserCount = nUserCount + myReader.GetValue(0).ToString()+"--"+myReader.GetValue(1).ToString()+" ";
}
myReader.Close();
Myconn.Close();
return nUserCount;
 
ADO MD 范例
目录

使用如下范例主题可以了解部分 ADO MD 编程元素。

连接多维据源

Connection 范例演示如何连接 OLAP(联机分析过程)数据库服务器或本地 OLAP 立方文件。

访问 ADO MD 集合

CubeDef 范例演示如何显示 Catalog 中 CubeDef 的维的名称。

获得单元集

单元集范例演示如何执行返回单元集的 MDX 查询。该范例显示单元集中成员的标题和单元的格式化值。

访问单元

单元范例演示检索指定单元的三种方法:通过序号位置、通过轴数值位置和通过成员名称。

Connection 范例
目录

如下代码演示如何使用连接字符串设置 ActiveConnection 属性。该代码假定在名为 Servername 的 OLAP 服务器上有一个名为 Bob Video Store 的数据源,并且使用的是 MSOLAP 数据提供者。

Dim cat As New ADOMD.Catalog
cat.ActiveConnection = "Data Source=Servername;" + _
   "Initial Catalog=Bobs Video Store;Provider=msolap;"

如下代码也演示如何使用连接字符串设置 ActiveConnection 属性。但是,该代码使用 MSOLAP 数据提供者连接到本地立方文件,而不是连接到名为 Servername 的 OLAPT 服务器。

Dim cat As New ADOMD.Catalog
cat.ActiveConnection = _
"Location=C:\MSDASDK\samples\oledb\olap\data\BobsVid.cub;" + _
"Provider=msolap;"

如下代码演示如何将 ActiveConnection 属性设置为标准的ADO Connection 对象。要使用 ADO Connection 对象,必须在工程中引用 ADO 类型库。

Dim cnn  As New ADODB.Connection
Dim cat  As New ADOMD.Catalog
Cnn.Open "Data Source=Servername;" + _
   "Initial Catalog=Bobs Video Store;Provider=msolap;"
Set cat.ActiveConnection = cnn

注意   在将 ActiveConnection 属性设置为 Connection 对象时,记住要使用 Set 关键字。如果没有使用 Set 关键词,其结果是将 ActiveConnection 属性设置成 Connection 的默认属性:ConnectionString。代码将会工作,但将创建与数据源的其他连接,最终得到相反的结果。

CubeDef 范例
目录

如下代码范例演示如何访问 CubeDefs 和 Dimensions 集合。该范例打印立方中每个维的名称。该代码假定在名为 Servername 的 OLAP 服务器上存在名为 Bobs Video Store 的数据源。

Dim cat      As New ADOMD.Catalog
Dim cdf      As ADOMD.CubeDef
Dim I         As Integer
cat.ActiveConnection = "Data Source=Servername;" + _
   "Initial Catalog=Bobs Video Store;Provider=msolap;"
Set cdf = cat.CubeDefs("Bobs Video Store")
For i = 0 To cdf.Dimensions.Count - 1
   Debug.Print cdf.Dimensions(i).Name
Next
Cellset 范例目录如下代码演示如何打开 Cellset、打印每个位置的 Members 的标题和打印 Cell 的格式化值。该代码假定在名为 Servername 的 OLAP 服务器上存在名为 Bobs Video Store 的数据源。Dim cat      As New ADOMD.Catalog
Dim cst      As New ADOMD.Cellset
Dim axs      As ADOMD.Axis
Dim I         As Integer
Dim j         As Integer
cat.ActiveConnection = "Data Source=Servername;" + _
   "Initial Catalog=Bobs Video Store;Provider=msolap;"
cst.Source = "SELECT [Product Category].MEMBERS ON ROWS," + _
                     "[Store State].MEMBERS ON COLUMNS" + _
               "FROM  [Bobs Video Store]" + _
               "WHERE ([Quantity])"
Set cst.ActiveConnection = cat.ActiveConnection
cst.Open
For i = 0 To cst.Axes(0).Positions.Count - 1
   Debug.Print cst.Axes(0).Positions(i).Members(0).Caption & " ";
   Set axs = cst.Axes(1)
   For j = 0 To axs.Positions.Count - 1
      Debug.Print "     " & axs.Positions(j).Members(0).Caption & _
         " " & cst(i, j).FormattedValue
   Next
Next
cst.Close Cell 范例目录如下代码演示访问指定 Cell 的三个方法。该代码假定在 OLAP 服务器上存在名为 Bobs Video Store 的数据源。Dim cat      As New ADOMD.Catalog
Dim cst      As New ADOMD.Cellset
Dim cll      As ADOMD.Cell
cat.ActiveConnection = "Data Source=Servername;" + _
   "Initial Catalog=Bobs Video Store;Provider=msolap;"
cst.Source = "SELECT [Product Category].MEMBERS ON ROWS," + _
                     "[Store State].MEMBERS ON COLUMNS" + _
               "FROM  [Bobs Video Store]" + _
               "WHERE ([Quantity])"
Set cst.ActiveConnection = cat.ActiveConnection
cst.Open
' 使用序号位置检索单元。
Set cll = cst(10)
' 使用轴数值位置检索单元。
Set cll = cst(2,2)
' 使用成员名检索单元。
' MSOLAP 提供者不支持该方法,但是对于支持由成员名
' 访问单元的提供者,该方法可以包括在内。
' Set cll = cst("Childrens", "New York State")