C#应用访问Microsoft SQL Server 2005分析服务

C#编程基础(下)第五课:ADO.NET数据库开发(一)使用Connection对象将窗体程序和数据库连接 知识点:了解 ADO.NET 的功能和组成、会使用 Connection 对象连接到数据库、掌握基本的异常处理、会使用 Command 对象查询单个值。 1、ADO.NET 1.1 ADO.NET是什么? ADO.NET是一组用于和数据源进行交互的面向对象类库,通过这些类,我们可以访问和操作数据库。ADO.NET是数据库访问的方法和技术,主要用于完成C#应用程序访问数据库。... 阅读详情

一、前言

1、运行环境

Windows 2003 Server Enterprise Edition with Service Pack 1

Microsoft SQL Server 2005 with Service Pack 1(包含Analysis Service)

Visual Studio 2005 Team Suite

2、本文使用Microsoft SQL Server 2000下也可使用的ADOMD .NET访问分析服务。

二、目标

查询分析服务数据转换为DataTable形式,在GridView中显示。

三、实现

通过Adomd .NET访问分析服务。通过MDX查询语言查询数据。

1、  同ADO .NET一样,ADOMD .NET也主要有在线数据读取器AdomdDataReader和离线数据集(类似DataSet) CellSet

2、  访问数据的步骤为:建立连接->打开连接->建立AdomdCommand ->得到CellSet->关闭连接->将CellSet转化为DataTable或将数据绑定到对应的饼图等统计图控件

3、  代码片断

l         打开连接,连接到分析服务

        public void OpenConnection()

        {

            if (_connection != null)

                if (_connection.State == ConnectionState.Closed)

                    _connection.Open();

        }

l          获得CellSet数据对象

        public CellSet ExecuteCellSet(string queryString)

        {

            OpenConnection();

 

            AdomdCommand command = _connection.CreateCommand();

 

            command.CommandText = queryString;

           

            CellSet cellSet = command.ExecuteCellSet();

           

            CloseConnection();

 

            return cellSet;

        }

l          将CellSet数据对象转换为DataTable对象

        public DataTable ToDataTable(CellSet cs)

        {

            DataTable dt = new DataTable();

            DataColumn dc = new DataColumn();

            DataRow dr = null;

 

            //第一列:必有为维度描述(行头)

            dt.Columns.Add(new DataColumn("Description"));

 

            //生成数据列对象

            string name;

 

            foreach (Position p in cs.Axes[0].Positions)

            {

                dc = new DataColumn();

                name = "";

                foreach (Member m in p.Members)

                {

                    name = name + m.Caption + " ";

                }

 

                dc.ColumnName = name;

                dt.Columns.Add(dc);

            }

 

            //添加行数据

            int pos = 0;

 

            foreach (Position py in cs.Axes[1].Positions)

            {

                dr = dt.NewRow();

 

                //维度描述列数据(行头)

                name = "";

                foreach (Member m in py.Members)

                {

                    name = name + m.Caption + "/r/n";

                }

                dr[0] = name;

 

                //数据列

                for (int x = 1; x <= cs.Axes[0].Positions.Count; x++)

                {

                    dr[x] = cs[pos++].FormattedValue;

                }

 

                dt.Rows.Add(dr);

            }

 

            return dt;

        }

5、程序调用

    BaseComponent.Data.SqlAnalysisService sa

        = new SqlAnalysisService("Data Source=localhost;Catalog=LibraryStat");

 

    protected void Page_Load(object sender, EventArgs e)

    {

        StringBuilder sb=new StringBuilder();

 

        sb.Append("with ");

        sb.Append(" set [AllCount] as '[图书分销 订单].[层次结构].[单位].[安徽大学     图书馆].Children'");

        sb.Append(" Member [图书分销 订单].[层次结构].[单位].[安徽大学     图书馆].[合计] as 'aggregate([AllCount])'");

        sb.Append(" Member [所占订单数百分比] as '[订单数量]/([订单数量],[图书分销 订单].[层次结构].[单位].[安徽大学     图书馆].[合计])',format_string='#.00%'");

        sb.Append(" select {[Measures].[订单数量],[Measures].[储运数量],[Measures].[原始数量],[所占订单数百分比]} on columns,");

        sb.Append(" {[图书分销 订单].[层次结构].[单位].[安徽大学     图书馆].Children} on rows");

        sb.Append(" from [图书馆统计]");

 

        DataTable dt = sa.GetDataTable(sb.ToString());

 

        gv.DataSource = dt;

        gv.DataBind();

    }

gv为一个GridView对象。除了查询语句不同,数据绑定是一样的,因为已经转换为DataTable了。

四、备注

命名空间:Microsoft.AnalysisServices.AdomdClient

程序集文件:Microsoft.AnalysisServices.AdomdClient.dll(Microsoft SQL Server 2005为9.0版;Microsoft SQL Server 2000为8.0版)

有AdomdClient当然有AdomdServer,分析服务也包含了存储过程和CLR的存储过程。

五、后记

l         理论上本例也可以在Microsoft SQL Server 2000下运行。但是我的同事在WebForm下应用时出现错误。

l         在微软推出Microsoft SQL Server 2005之后,微软又为分析服务提供了多种访问方式。

.NET环境下的SQL Server 2005 使用技巧与示例 SQL Server 2005是微软公司推出的一款功能强大的关系型数据库管理系统。它为IT专业人员提供了一个集成的数据管理解决方案,支持企业级的数据存储、处理和分析。SQL Server 2005不仅增强了数据仓库和商业智能功能,还提高了开发人员的工作效率,允许他们使用.NET Framework创建数据库相关应用。ADO.NET是.NET Framework中用于数据访问的一组类库,它提供了一种与数据源进行交互的编程模式。ADO.NET核心组件包括以下几个方面:Connection对象。 阅读详情

相关推荐

新语聊天系统:SQL Server与Visual Studio 2005的综合应用

本文还有配套的精品资源,点击获取 简介:新语聊天系统是一款基于SQL Server数据库和Visual Studio 2005开发环境构建的即时通讯软件。系统利用数据库管理功能存储用户信息、聊天记录等关键数据,并通过C#或***等语言编写的后端逻辑和前端界面实现了完整的即时通讯功能。同时,系统采取了TCP/IP协议、异步编程和WebSocket技术实现网络通信,并注重安全性...

weixin_28771751的博客 1162

C#WEB应用程序连接sql server 2005操作方法

C#WEB应用程序连接sql server 2005. 首先将MS SQL Server Management Studio打开,使用windows 身份验证模式登陆,然后在对象资源管理器中的数据库上点击右键,建立新的数据库。同时在数据库中建立新的数据表。建立好数据库后,在C#中添加代码:                 string sql;                 SqlConn

axiaochong的专栏 1322

C#与SQL Server构建的门诊挂号及医生工作站系统

在本章节中,我们深入了解了挂号管理功能的实现过程。从功能需求分析到核心编码实现,再到测试与部署,每一步都是确保系统成功的关键。此外,还涉及到了一些重要的技术实践,如使用C#进行面向对象编程、单元测试以及系统部署的策略。请注意,以上内容是按照具体要求和补充要求所构建的章节内容。实际撰写文章时,需要对每个部分进行详细的扩展和深入的分析,以满足字数要求并提供丰富的信息。电子病历(Electronic Medical Record, EMR)系统是医生工作站的核心功能之一。

weixin_42298164的博客 1084

基于.net的应用开发技术-作业六

1.(单选题)要访问Microsoft SQL Server 2005数据源,应该导入下列________________命名空间。A. System.Data.SqlClient B. System.Data.OleDb C. System.Data.Odbc D. System.Data.OracleClient 2.(单选题)下列____________数据访问类库用于填充DataSet对象。A. Connection B. Command C. DataReader

qq_61727355的博客 701

基于C#和SQL Server 2005的简易图书管理系统

图书管理系统(Library Management System, LMS)是一种用于管理图书馆资源、用户以及借阅流程的软件应用程序。通过LMS,图书管理员可以高效地跟踪图书的存取情况,简化借阅和归还流程,而用户则能够快速查询馆藏资料,进行在线预约和续借。.NET框架是由微软开发的一个软件框架,用于构建Windows应用程序。.NET框架的核心是公共语言运行时(Common Language Runtime,CLR),它负责执行程序集、管理内存,并且提供类型安全、异常处理等服务。

weixin_35995661的博客 949

深入理解VS 2005控件与SQL Server 2005数据库基础

在软件开发的世界里,控件库是构建复杂用户界面的基础。随着Visual Studio 2005的推出,微软提供了一个丰富的控件库,旨在简化开发过程,提高开发效率。本章将探讨VS 2005控件库的核心功能、特点以及它在现代开发中的重要性。VS 2005 控件库是开发Windows应用程序不可或缺的一部分,它提供了大量预制的控件,涵盖了从简单按钮到复杂网格的各种UI元素。开发人员可以利用这些控件快速构建稳定且功能丰富的桌面应用程序。

weixin_35811662的博客 604

java模拟试卷

1)    在HTML页面中使用图片可以使页面内容更加丰富多彩。标签用于在HTML       文档中插入图像,以下标签的( )属性表示的是当图像不能被下载是在       图片位置显示的文字。 (选这一项)A         a)     alt       b)     src       c)     width       d)     height   2)    在SQL Serer

谁的青春不奋斗 2830

卫星测试科普(三):卫星载荷的核心测试设备探秘

总的说来,卫星芯片与元器件,部组件与单机,整机与子系统,系统与整星的设计、定型、制造、验证、总装、发射、在轨等环节都离不开各种测试场景,对于这些卫星测试场景而言,“射频三大件”与高速数字示波器是构成强大测试系统的基础。卫星通信信号生成:覆盖Ka、Q等波段,具备扫频、脉冲、数字调制、噪声信号、雷达信号、数据链信号、OFDM 等多种信号库,用于测试和验证卫星电子设备的电气性能、频率响应、抗干扰能力等。卫星的通信需要高效、快速地传输大量数据,高速信号的质量至关重要,如果卫星信号不佳,卫星就会出现故障或者隐患。

spwbjss的博客 2317

数据库应用程序开发基础篇—— .NET中SQL Server数据库的操作C#篇之一

数据库应用程序开发基础篇—— .NET中SQL Server数据库的操作C#篇之一 写在前面:前面介绍了数据库系统的基本概念,SQl语句基本使用方法,接下来通过学习具体语言和具体数据库结合的应用开发来体会数据库原理及其应用。关于ADO.NET及基于此平台的开发内容太多,我们要做的是从最简单的开始,本文将会给出使用ADO.NET类库访问SQL Server2008的实例。 1.ADO.N

王定桥的专栏 1万+

MAX30102心率血氧传感器:从原理到实践的可穿戴健康监测方案

本文深入解析MAX30102心率血氧传感器的工作原理及在可穿戴健康监测中的实践应用。通过反射式光电容积脉搏波(PPG)技术,该传感器能精准测量心率和血氧饱和度,具备低功耗、高抗干扰等优势。文章详细介绍了信号处理算法、硬件连接技巧及创新应用场景,为开发者提供全面的解决方案。

weixin_29184371的博客 282

避坑指南:锐浪报表PictureBox打印图像常见的5大问题及解决方案

本文深入剖析了锐浪报表(Grid++Report)中PictureBox控件打印图像时常见的五大难题,包括图像源加载机制、拉伸失真、动态加载失败、跨平台兼容性及性能优化。文章提供了从原理理解到实战解决方案的完整指南,帮助开发者有效规避图像打印中的常见陷阱,确保报表输出的稳定与高质量。

water的专栏 1148

[原创]C#应用访问Microsoft SQL Server 2005分析服务

接上次建立的多维数据集 一、前言 1、运行环境 Windows 2003 Server Enterprise Edition with Service Pack 1 Microsoft SQL Server 2005 with Service Pack 1(包含Analysis Service) Visual Studio 2005 Team Suite 2、本文使用Microsoft...

weixin_30416871的博客 89

QT西游回合制源码+java后台管理系统

这是一套回合制游戏源码,很适合学习。

renkai721的专栏 2536

SQL Server 2005 与 SQL Express 的异同

SQL Server Express 2005(以下简称 SQLExpress) 是由微软公司开发的 SQL Server 2005(以下简称 SQL2005)的缩减版,这个版本是免费的,它继承了 SQL Server 2005 的多数功能与特性,如:安全性设置、自定义函数和过程、Transact-SQL、SQL、CLR 等,还免费提供了和它配套的管理软件 SQL Server Managem

Helling的专栏 2018

Qt:一个强大而灵活的跨平台应用程序开发框架

代码示例中的源代码是简单的示例,用于演示Qt框架的一些基本特性。实际应用中,开发人员可以根据自己的需求和项目要求,使用Qt框架提供的丰富功能和组件进行开发。在Qt的官方文档和示例代码中,您可以找到更多详细的教程和示例,以帮助您更好地理解和使用Qt框架。它提供了丰富的工具和功能,支持跨多个平台进行开发,并具有高度的可定制性和灵活性。它提供了丰富的工具和功能,使得开发人员能够创建高性能、可扩展和易于维护的应用程序。下面将详细介绍Qt框架的优点,并提供一些相关的源代码示例。

CodeVorter的博客 845

MIKE水动力笔记3_岸线及水深数据之根据遥感影像绘制岸线的方法

通过遥感影像自己绘制岸线来制作岸线数据,这种方法获取的岸线及水深数据精度很高,且可以根据自己的研究需要进行灵活处理。

晏长街的博客 1万+

SQL Server 2005数据库开发概述

数据库开发的新典范随着Microsoft SQL Server 2005 Beta 2的发布,数据库开发的方式正在改变中。作为一个数据库开发人员,现在你可以更好的把工作关注在功能、对本机格式的数据的访问(如XML)、以及利用强大的数据库服务器创建更复杂的系统上。数据库开发工作正前所未有的越来越集成,你所需要的所有工具都触手可及。 本文讨论了一些SQL Server 2005的新特性,这些新特性将帮

体验SQL Server 2005 4596

GEE:连续变化检测 CCD 第一步(导出ee.Algorithms.TemporalSegmentation.Ccdc函数的结果)

连续变化检测与分类(Continuous Change Detection and Classification, CCDC)主要有两个组件,一个连续变化检测 CCD,另外一个分类。在 Google Earth Engine (GEE)平台上进行 CCD 时间序列变化检测的时候,为了防止内存超限问题,将代码分为2阶段执行。第一阶段是运行 `ee.Algorithms.TemporalSegmentation.Ccdc` 函数,本文将详细介绍 CCD 的第一阶段的代码。

养乐多的博客 2492

【SQL Server】SQL2005的安装与配置、简单使用

印象中,以前电脑不发达,自身编程经历不多的时候,由于Microsoft SQL Server版本众多,在不同版本的windows下必须要求装相应版本的SQL Server,否则有可能出现兼容性的问题,装个Microsoft SQL Server总是非常费劲,装完之后用起来,由于Microsoft SQL Server还需要比较多的运行资源,玩起来卡得不要不要的,最后Microsoft SQL Se

编程记录,亲测有效 4万+

倒立摆的PLC控制(模型分析+ SCL源代码)

首先简单介绍下倒立摆模型,下面这幅图是MATLAB网站上的倒立摆模型,下面我们利用牛顿第二运动定律建立摆杆的运动方程。

RXXW_Dor的博客 3330

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

运用SQL SERVER 2005 CLR解决XML Showplan实例教程

<br />大家都知道SQL SERVER 2005 CLR(公共语言运行库),而在编程中SQL Server 开发人员和数据库管理员 (DBA) 有时会遇到这种情况,即用户在工作高峰期向服务器提交长时间运行的查询,因而降低了服务器的响应速度。在这里给大家将介绍两种方法可以防止这一情况的发生: <br />1.DBA 可使用 sp_configure 将 query governor cost limit 选项设置为特定阈值。(这是一个高级选项。)该阈值在整个服务器内是有效的。 <br />2.要影响连接的

mounting的专栏 936

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

VC# 2005 SQL Server 2005数据库与网络开发

本书基于微软的.NET框架和数据库SQL Server 2005服务器技术,详细全面地介绍了该框架下的C# 2.0技术,以及如何基于该编程语言实现基于数据库的程序开发。全书分为6篇。第一篇介绍了C#语言的基础知识,包括C#简介和C#语言基础;第二篇介绍了数据库SQL 2005的相关知识,包括数据库的操作、数据查询语言基础以及数据报表的相关概念;第三篇介绍了ADO.NET的相关知识,包括数据库的

我的学习日志 675

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

使命重大的微软SQL Server 2005

微软SQL Server 1.0诞生自1989年,时至今日已经17年了。从SQL Server 2000到SQL Server 2005,这之间跨越了五年,占整个历程的1/3还要多。五年的时间对于软件产品更新而言应当算是一个冬眠期,何况这个冬眠又发生在软件巨人身上。这五年,说是微软的蓄势待发也罢,说是她的姗姗来迟也罢,总之2005版本的SQL Server来头不小。数据库管理、开发新功能微软在

annicybc的专栏 1257
下一篇: .NET程序员面试的题一部
AlphaGroup
博客等级 码龄25年 6粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值