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

LabVIEW vs Python:谁更适合你的ATE自动化测试系统?实测对比与选型建议

本文深入对比了LabVIEW和Python在ATE自动化测试系统中的性能表现、开发效率和应用场景,帮助工程师根据实时控制需求、数据处理复杂度及团队技能做出最优选型决策。通过实测数据和典型案例,分析两者在硬件集成、系统性能和维护成本等方面的差异,并提供混合架构实施建议。

weixin_29240711的博客 276

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

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

王定桥的专栏 1万+

海外最新AI营销AI销售书籍推荐AI营销培训讲师AI销售培训讲师人工智能营销培训师人工智能销售培训师AI赋能营销培训AI赋能销售培训企业AI营销内训企业AI销售内训AI营销课程讲师AI销售课程讲师

专栏|AI营销与AI销售实战 · 第46期在这个人类与算法共舞的时代,销售,已经不是你我熟悉的那个“打电话、见客户、做PPT”的老行当了。你还以为销售是“打感情牌”?错了,情感要继续,但方式已经升级。你还以为AI只是“写写文案”?错了,文案只是皮毛,真正的杀器,是思维方式的重构,是认知地图的重绘。首先,我们需要明确一个事实:AI并不会消灭销售这个职业,但它必然会重新定义销售的本质。在销售领域,真正的制胜之道不是简单地采用AI工具,而是的能力。

Akibfrycc的博客 1100

C# WinForms实战:5分钟用ScottPlot打造专业级示波器界面(附完整代码)

本文详细介绍了如何在C# WinForms应用中,利用ScottPlot.WinForms库快速构建一个专业级的软件示波器界面。通过从环境配置、静态波形绘制到动态数据实时更新的完整实战演示,帮助开发者高效实现高性能的波形显示功能,适用于工业监控、信号分析等多种场景。

weixin_29198045的博客 831

[原创]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

数据库崩溃恢复机制:REDO日志与UNDO日志详解

在数据库管理系统中,事务的持久性和一致性是至关重要的。为了保证在系统崩溃或发生故障时数据不会丢失,数据库引入了恢复机制。其中,REDO日志和UNDO日志是两种关键的恢复技术。本文将详细描述这两种日志的作用、工作原理以及它们在数据库崩溃恢复中的应用。

My_wife_QBL的博客 1409

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

【WRF-DART第一期】WRF/DART概述

【WRF-DART第一期】WRF/DART概述

WW、forever的博客 107

vue3:最新实现腾讯人脸核身+增强版人脸核身使用方法及示例源码,Vue3如何使用腾讯云慧眼人脸核身,提供人脸核身案例、身份信息核验、活体检测与核身比对等示例代码(后端spring与thinkphp)

vue3接入腾讯人脸核身,腾讯云人脸核身Vue3+后端代码,H5人脸核身,vue3 H5如何使用腾讯人脸核身sdk,vue3+thinkphp腾讯人脸核身,Spring Boot接入腾讯云人脸核身教程,hinkphp腾讯人脸核身,vue3人脸核身插件接入流程,vue+spring boot实现腾讯人脸核身,vue3接入腾讯云【增强版人脸核身接入】,vue3 h5微信公众号网页腾讯云慧眼人脸核身,tvue3接入人脸核身SDK,vue3+typescrip+vite接入慧眼实名认证,vue3腾讯云活体人脸核身(

✅ 精选推荐文章 4119

SQL Server 2005数据库开发概述

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

体验SQL Server 2005 4596

【YOLOv11】006、YOLOv11数据增强策略:Mosaic、MixUp等增强技术原理解析

摘要:YOLOv11在产线缺陷检测中遇到小尺寸瑕疵漏检问题,暴露了训练数据过于"干净"的缺陷。数据增强的核心是提升模型泛化能力,而非简单扩充数据。Mosaic增强通过多图拼接迫使模型处理多尺度目标,需注意边界框裁剪细节;MixUp通过线性插值使决策边界更平滑,但需避免类别冲突。自适应增强策略应随训练进度动态调整强度。实际应用中,需针对小目标、类别不平衡等场景调整增强参数,并确保验证与推理流程一致。数据增强应针对性解决具体问题,而非盲目尝试组合。

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 365

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

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

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

Feature ‘alsa‘ was enabled, but the pre-condition ‘config.unix && !config.qnx && libs.alsa‘ failed解决

这个问题主要是Qt多媒体插件中缺少了ALSA音频库,所以我们需要自行先编译ALSA 在执行./configure的时候,配置项中ALSA为no Qt Multimedia: ALSA ................................... no GStreamer 1.0 .......................... no GStreamer 0.10 ......................... no Video for Linux .............

有问题或资源连接有缺失的可以私信公众号新潮看世界获取 2587

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

运用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

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

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

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

我的学习日志 675

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

使命重大的微软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、付费专栏及课程。

余额充值