当前位置:文档之家› 微软图表控件使用初探--数据绑定(交叉表)

微软图表控件使用初探--数据绑定(交叉表)

微软图表控件使用初探--数据绑定(交叉表)
微软图表控件使用初探--数据绑定(交叉表)

本来在考虑是否继续写图表控件的使用文章,毕竟,微软自带的例子已经非常详细了,花点时间参考一下基本上可以了解用法和使用特性,不过后来想想,还是写一下咯,抽出其中大家关心的内容,写出其中常用的使用方法,可以省去大家的时间,在需要深入的时候再去详细查看例子,也当是学习笔记吧:)(BTW:我也是边学习边写的,因此,写的文章中难免有不足或失误的地方,希望各位朋友指正出来咯,大家一起提高~本文中基本上只会写出最简单常用的功能,复杂的数据操作请参考微软详细的例程)

一.数据源

说到绘制图表,可能很多人的第一反应除了是图表呈现的方式外,更关心的便是数据如

何添加,记得在很多年前,哪时要绘制一个数据曲线图,一直找不到好的呈现方式,后来使用了SVG的绘图模式,不过在添加数据的时候可谓吃尽了苦头,毕竟,SVG只是一种描述语言,要动态的实现一个图表的绘制,是非常困难的.对于微软的图表控件,数据添加是一件很简单的方式,它支持多种数据添加方式,如:

?可以在图表的设计界面,在属性设置窗口中的Series属性下的Points中添加需要的数据.

?可以在图表的设计界面中,在属性中绑定一个数据源.

?可以在后台代码中,动态添加数据.

?可以在后台代码中设置一个或多个数据源,直接绑定到图表中.

在此处,我只着重讲解一下第3,4两点.对于第3点,相对来说比较简单,在后台代码中,找到要添加代码的Series,通过它下面Points的Add、AddXY、AddY等方法,即可以实现数据的添加.例如:

double t;

for(t = 0; t <= (2.5 * Math.PI); t += Math.PI/6) {

double ch1 = Math.Sin(t);

double ch2 = Math.Sin(t-Math.PI/2);

Chart1.Series["Channel 1"].Points.AddXY(t, c h1);

Chart1.Series["Channel 2"].Points.AddXY(t, c h2);

}

(注:代码摘自微软的例子,上例中,Chart1为图表的名字,Channel 1、Channel 2分别表示两个Series数据序列)

二.绑定数据

先来看看图表控件都支持什么类型的数据绑定,根据官方文档的说法,只要是实现了I Enumerable接口的数据类型,都可以绑定到图表控件中,例如:DataView, DataRead

er, DataSet, DataRow, DataColumn, Array, List, SqlCommand, OleDbComm and, SqlDataAdapter, 及OleDbDataAdapter对象。

对于开发来说,最常用的还是DataView、DataReader、DataSet、DataRow、Ar ray、List这几种类型了,有几点需要注意一下:

?图表控件支持多数据源的绑定,例如:X轴绑定一个数据集ds1,Y轴可以绑定另一个数据集ds2,当然也可以是X轴绑定到一个List数据对象,Y轴绑定到一个DataVi ew对象等等。

?图表控件的绑定方式一般有两种,常规绑定及交差表的绑定。

?图表控件的Y轴数据,支持一次绑定多个值,以绘制时间、区域、使用量等之类的图形。

绑定数据的流程如下:

大意是,绑定数据里面是否有分组数据需要绑定,如果有,则调用交叉表绑定的方法。否则判断是否时绑定X轴和Y轴(包括标签、超链接、图例文字等自定义属性),如果是,则调用Points.DataBind方法进行绑定操作。再判断是否有不同的X轴或Y轴数据,如果有,则分别调用X,Y轴的绑定方法Points.DataBindX,Points.DataBindY进行数据绑定。最后,再判断是否需要进行多个Y轴值的绑定。

下面分别对几种数据绑定的方法进行一下说明:

1.绑定一张数据表

绑定一张数据表,例如绑定一张普通的数据表,表数据如下:

绑定方法的代码:

string mySelectQuery="SELECT Name, Sales FROM REPS;"; OleDbConnection myConnection = new OleDbConnection(myConne ctionString);

OleDbCommand myCommand = new OleDbCommand(mySelectQuery, m yConnection);

myCommand.Connection.Open();

OleDbDataReader myReader = myCommand.ExecuteReader(Command Behavior.CloseConnection);

Chart1.DataBindTable(myReader, "Name");

myReader.Close();

myConnection.Close();

因为数据源中只有两列Name和Sales,因此在调用Chart1.DataBindTable方法的时候,告诉了图表X轴的名称为Name,因此自动将Sales设置为Y轴的数据了.生成的图形如下:

如果修改一下Sql语句为:SELECT Name,ID,RegionID FROM REPS;其它都不变化,再看看图表是如何处理另外两个字段的,生成的图表如下:

此时,图表自动将ID,RegionID字段当成了Y值,生成了两个Series,因此每个用户都有两个值,生成的图形也有两个柱状图.

上面是一种动态绑定的方式,有人可能会问了,如果我想确定我要绑定的列,比如:X轴绑定某个字段,Y轴绑定某个字段如何操作呢?对于这种绑定,有几种方法可以实现.

第一种:这种方法可能是很常见的,在原来的.NET编程中出现的机率非常之高,方法如下:

// 设置数据源,myDv是一个取出数据集的DataView

chart1.DataSource = myDv;

// 分别设置图表的X值和Y值

chart1.Series["Series1"].XValueMember = "Name";

chart1.Series["Series1"].YValueMembers = "Sales";

// 绑定设置的数据

chart1.DataBind();

第二种:即直接调用点的绑定方法

//myReader为取得的DataReader对象

Chart1.Series["Series1"].Points.DataBindXY(myReader, "Nam e", myReader, "Sales");

第三种:调用DataBind的方法实现

Code

Chart1.Series["Series1"].Points.DataBind(myReader, "Name", "Sales", "");

上面几种方法得到的效果都是一样的.当然了,上面三种方法需要自己建立Series,要显示两个柱状图,像上面的例子中的图形,那么得手动建立两个Series,然后分别进行上面的绑定操作。

此处说一下Label和Tooltip的绑定方式,要在绑定的图表中显示标签(Label)及提示(Tool tip),可以在绑定的时候,设置绑定的属性.对于上面的第一、二种方法,可以调用如下的方法来设置Label和Tooltip;例如,两个数据序列名称分别为Series1和Series2,设置代码如下:

Chart1.Series["Series1"].Label = "#VAL";

Chart1.Series["Series1"].Points.DataBind(myDs.T ables[0].DefaultView, "Name", "ID", "");

Chart1.Series["Series2"].Label = "#VAL";

Chart1.Series["Series2"].Points.DataBind(myDs.T ables[0].DefaultView, "Name", "RegionID", "");

其中的#VAL是Label和Tooltip的通配符,表示取默认Y轴变量的意思。具体的详细操作可以参考例程:Chart Features/Labels下面的内容。以后有空我也写一篇Label的和其它变量的设置吧。

对于第三种调用的绑定则稍微不同,如下:

Chart1.Series["Series1"].Points.DataBind(myDs.Tables[0].D efaultView, "Name", "ID", "Label=ID,ToolTip=RegionID");

Chart1.Series["Series2"].Points.DataBind(myDs.T ables[0].DefaultView, "Name", "RegionID", "Label=RegionID, ToolTip=ID");

其实就是利用第三个属性,通过格式化的字符串来设置绑定属性,Label表示标签,ToolT ip表示提示信息,Url表示超链接等等。最后生成的图片如下:

2.绑定一个交叉表

微软的图表控件提供了一个交叉表数据的绑定方法DataBindCrossTable,它可以根据数据动态的生成数据序列(Series),借用官方的例子,数据库的表数据如下:

我们先看看DataBindCrossTable的参数,它有两个重载方法,分别是:public void DataBindCrossTable (

IEnumerable dataSource,

string seriesGroupByField,

string xField,

string yFields,

string otherFields,

PointSortOrder sortingOrder

)

以及

public void DataBindCrossTable (

IEnumerable dataSource,

string seriesGroupByField,

string xField,

string yFields,

string otherFields

)

每个参数的含义如下:

dataSource

要绑定的数据源.

seriesGroupByField

要分组统计的数据字段名称,例如按姓名、日期等.

xField

X轴绑定的字段名称.

yFields

Y轴绑定的字段名称,如果需要绑定多个字段,则用逗号将字段名分开. otherFields

其它数据字段属性,就是上面刚讲的,标签、提示、Url等属性. sortingOrder

设置数据是正确还是逆序排列.

此时要以统计每个用户的年销售曲线,那么分组统计的字段名应该设置为Name,如下:

Chart1.DataBindCrossTable(

myReader,

"Name",

"Year" ,

"Sales",

"Label=Commissions{C}");

用如上的方法绑定,生成的图形如下:

相反,如果要统计用户每年的曲线,则将字段反转一下即可,如下:

Chart1.DataBindCrossTable(

myReader,

"Year",

"Name",

"Sales",

"Label=Commissions{C}");

生成的曲线图如下:

这次就先说到这里咯,说几个需要注意的地方:

在进行Y轴数据绑定的时候,如果要绑定多个字段,默认情况会出错,那是因为需要设置Y轴的可保存值数量,设置为你需要保存的数量即可,设置的地点在:Series-》YValuesPrePoint,设置为你需要显示的个数即可。

在进行DataTable绑定的时候,Label、ToolTip等属性的字段格式化比较困难(ot herFields 属性),我试了半天,也就试出了一次只能绑定一个字段,因为是和数据集绑定,如果要在标签上增加文字的话,可以使用:Field{xxxx#xxxx},其中#会替换为相应的文字,例如:Field的值为45,那么最后的呈现的结果就是:xxxx45XX XX.

BTW:有很多东西我自己也在研究中,因此说得不是很完善,希望大家一起研究吧~下次再研究一下数据操作方面的东东以及标签等的显示。

数据库实验

数据库实验 集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

数据库原理实验指导 实验前准备: 请设计一个企业销售管理据库,其中需要保存的信息如下: 员工信息,包括:员工编号、员工姓名、性别、所属部门、职称、到职日、生日、薪水、填表日期; 客户信息,包括:客户号,客户名称,客户住址,客户电话、邮政编码; 产品信息,包括:产品编号,产品名称; 员工和客户可以签订订单,每签订一个订单,就要保存订单信息,包括:订单编号、客户号、业务员编号、订单金额、订货日期、出货日期、发票号码。 此外,每个订单可能涉及到多种产品,每种产品可能被多个订单订购。因此需要每个订单中每类产品的销售明细,包括每种产品的销售数量、单价、订单日期; 要求: (1)给出系统的ER图(可以用word或其它画图工具,如Visio画),要求画出所有的实体,联系,属性以及联系的类型; (2)将ER图转换为关系模型; 实验一 实验名称:数据定义(2课时) 一、实验目的

1、理解数据库模式的概念,通过使用SQL SERVER企业管理器或者My Sql建立数据库和基本表。模式为人事表、客户表、销售表、销售明细表、产品表。熟悉SQL SERVER企业管理器的使用,并将得到的表生成脚本,然后保存。 2、理解上述基本表之间的关系,建立关系表。 3、掌握修改表结构的基本方法 4、掌握索引和视图的创建方法 二、实验环境 MS SQL SERVER或者My Sql。 三、实验内容与步骤 1、建立一个数据库和五张表的表结构。 (1)/*员工人事表employee */ Create datebase sale; create table employee( emp_no char(5) Not null primary key, emp_name char(10) Not null, sex char(1) Not null,

数据库实验1-6参考答案

实验一SQL Server使用初步 一、实验目的 1、熟悉SQL Server2000的组成及基本功能。 2、掌握SQL Server2000的登录及注册。 3、掌握SQL Server2000企业管理器的使用方法。 4、熟悉查询分析器的基本使用。 二、实验预习 1、什么是数据库管理系统DBMS?你所知道的DBMS有哪些? 答:DBMS是位于用户和操作系统之间的一层数据管理软件。常见的DBMS主要有:Oracle、db2、SQL Server、MySQL、PostgreSQL、SQLite、Firebird等等。 2、SQL Server 2000(2005)的安装步骤? 答:以企业版安装为例,步骤为: 将企业版安装光盘插入光驱后,出现以下提示框。请选择“安装 SQL Server 2000 组件” 出现下面对话框后,选择 "安装数据库服务器" 。 选择 "下一步",然后选择 "本地计算机" 进行安装。 在 "安装选择" 窗口,选择 "创建新的SQL Server实例..."。对于初次安装的用户,应选用这一安装模式,不需要使用 "高级选项" 进行安装。 "高级选项" 中的内容均可在安装完成后进行调整。 在 "用户信息" 窗口,输入用户信息,并接受软件许可证协议。 在“安装定义”窗口,选择“服务器和客户端工具”选项进行安装。 在“实例名”窗口,选择“默认”的实例名称。 在“安装类型”窗口,选择“典型”安装选项,并指定“目的文件夹”。 在 "服务账号" 窗口,请选择 "对每个服务使用统一账户..." 的选项。 在 "身份验证模式" 窗口,选择 "混合模式..." 选项,并设置管理员"sa"账号的密码。 最后按“下一步”即可完成安装。 检测安装:如果安装成功,应该能成功启动SQL Server,并且能和SQL Server 客户端连接上。 可以通过服务管理器来进行启动。

ASPNET 五大数据控件

数据绑定控件比较(Reapter\DataList\GridView\DatailsView\FormView): 1.插入功能方面: DetailsView和FormView具有插入功能,其它控件没有 2.模板 DataList\FormView\Repeater三种必须编辑模板,而 GridView和DetailsView只有在将列转换成模板列以后才会出现各种模板. 3.自动分页功能 GridView ,DetailsView和FormView都是2.0版本新增控件,内置了分页,排序等等功能, 其他需要手工定义 4.数据呈现方式: GridView,DataList,Repeator用于呈现多列数据, DetailsView,FormView用于呈现单列数据,即常用的数据明细. DataList和Reapter都需要编辑模板列,而在模板列当中可以添加TextBox,同时可以指定TextBox的ID从而实现提取

用户输入的值,但是DataGrid和GridView两个件是不需要编辑模板的,它的编辑功能是自动生成的我们无法知道那些文本框的ID,也就无法通过ID来获取用户的输入,那么可以通过对单元格的引用来实现: private void DataGrid1_UpdateCommand(object source,xx) { string bkid=DataGrid1.DataKeys[e.Item.ItemIndex].toString();//提取主键 string bktitle=((TextBox)e.Item.Cells[1].Controls[0]).Text;// 提取用户的输入 } 一.进入编辑状态: DataList1.EditItemIndex = e.Item.ItemIndex; DataGrid1.EditItemIndex = e.Item.ItemIndex; GridView1.EditIndex = e.NewEditIndex;

关于C1NET中的数据库控件的使用Word文档

3.2 绑定到数据源 创建数据源后,就可以使用数据绑定技术将窗体控件同数据源关联起来。这可能很简单,也可能很复杂,就看要怎么实现,可能同时要用到声明式方法(通常是使用向导)和编程式方法(使用自己的代码定制行为)。本章将采用较简单的方法,只使用向导将数据绑定到控件。本书后面将介绍更高级的定制。 可以将数据绑定到很多控件,但使用向导只能绑定到下列控件: ●列表控件:在列表中显示单列数据; ● DataGridView控件:以类似于表格的格式显示数据; ● BindingNavigator控件:在表中的多条记录之间导航; ●由基本控件(如TextBox和Label)组成的详细视图:显示 单行数据。 稍后将介绍如何完成这些工作,但在此之前先来看一下另一个控件:BindingSource,它是数据绑定的核心。 3.2.1 BindingSource控件 BindingSource控件充当数据绑定控件和数据源之间的中介。它提供了一个通用接口,其中包含控件绑定到数据源时所需的所有功能。使用向导将控件绑定到数据源时,实际上创建并配置了一个BindingSource控件实例,并绑定到该实例。 这种架构提供了很大的灵活性,尤其是在复杂的情形下,因为这样可以将数据源设计为任何形式,只要它能够与BindingSource控件进行通信。这意味着可以使用非数据库数据源,或使用极其复杂的数据访问机制的自定义数据源。 然而,在本书的大部分地方,都将使用BindingSource控件来访问类型化数据集类。 前面提到过,配置BindingSource控件通常都是自动完成的。然而,为避免后台发生太多看不到的操作,需要对这个控件的工作原理进行较深入研究,看看如何手工配置它。 可以手工地将该控件的实例添加到窗体中。它是不可见的组件,在窗体中看不到。添加的实例将出现在窗体下面,如图3.17所示。

数据库实验6数据库系统设计

实验报告 学院:计信学院专业:网络工程班级:091 姓名学号实验组实验时间2012-6-1 指导教师成绩实验项目名称实验六:数据库系统设计实 验目的 要求掌握数据库设计的基本技术,熟悉数据库设计的每个步骤中的任务和实施方法,并加深对数据库系统概念和特点的理解。 实 验 要 求 本实验属于设计型实验,通过实验,加强对课堂讲授知识的理解。 实验原理 必须按照数据库设计的四个阶段进行:需求分析(分析用户要求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。概念模型设计时采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上地设计概念结构,和自底向上的设计方法;概念模型必须用E-R图进行表示。在逻辑设计阶段,将E-R图转换成关系模式,然后进行关系模式的规范化。在物理设计阶段,将关系模式转化成SQL Server中的具体的数据库表,并建立表间的关系,表的索引,及相关的约束。 实 验仪器(1)硬件条件:个人计算机。 (2)软件条件:Windows 2000NT Server; MS SQL Server 2000。 实验步骤1、完成系统需求分析报告 在系统需求分析报告中包括采用的设计方法、数据流图和数据字典。 2、完成数据库信息要求和关系数据模型设计 使用E-R图表示对数据库中要存储的信息及语义进行详细描述,对数据约束和数据之间的关联进行

详细描述。详细描述系统需要的基本表及属性、视图和索引,对基本表的主码、候选码、外码及被参照表进行说明,对基本表中数据的约束条件进行说明。 3、完成数据库的操作和应用要求报告 在数据库的操作和应用要求报告中,详细描述数据库的数据操作要求、处理方法和处理流程,画出系统功能模块图。 4、在机器上完成整个数据库的设计。 实 验内容 要求根据周围的实际情况,自选一个自己熟悉的小型数据库应用项目,并深入到应用项目的现实世界中,进行系统分析和数据库设计。例如选择学籍管理系统、图书管理系统、材料管理系统或仓库管理系统等。 实验数据我设计的是车站售票管理系统,主要用于车站日常的票务处理。 一、需求分析 车站售票管理系统 员工 管理 模块 汽车 管理 模块 线路 管理 模块 车票 管理 模块 票务 信息 管理 模块 员 工 信 息 添 加 员 工 信 息 删 除 员 工 信 息 修 改 汽 车 信 息 添 加 汽 车 信 息 修 改 汽 车 信 息 删 除 线 路 信 息 添 加 线 路 信 息 修 改 线 路 信 息 删 除 添 加 车 票 删 除 车 票 查 询 车 票 信 息 购 买 / 预 订 车 票员 工 信 息 查 询 汽 车 信 息 查 询 线 路 信 息 查 询 车 票 信 息 查 询 功能模块图 1.员工管理模块: 员工有两种身份,售票员和系统管理员。系统管理员可以进行系统用户的添加,密码的修改操作,汽车,线路,车票信息的更新等,售票员可以查询以上信息和购买车票等。 2.线路信息管理模块:

WinForm数据绑定

WinForm数据绑定-简单绑定1 数据绑定的意义在前面的文章中已经做了描述。现在我们来具体了解一下数据绑定。 数据绑定被分为两个部分,(至少我是这样来分的)简单绑定和复杂绑定。以一种简单的方式来理解的话,简单绑定是只控件和某个单一对象之间的绑定,而复杂绑定是指和集合(ArrayList, Array, DataTable, DataSet)之间的绑定,而复杂绑定中隐含着简单绑定。所以我们必须先搞清楚简单绑定的想法(也是数据绑定实现的最基本的想法)。 前面描述过了数据绑定机制的想法是将数据和控件关联在一起的机制。那对于一个单一对象而言什么是数据呢?对象本身其实就可能包含一定的数据。比如我们知道的成员变量,它就在帮对象维持数据。而对于数据绑定机制而言,它关心的是属性。如果我们能将某个对象的属性和控件的某个属性关联在一起,那数据就可以自如的显示到控件中了。所以对我的认识而言,我认为简单绑定做的事情就是将对象中的属性和控件的属性关联。 考虑一下的代码。假设我定义了一个Person类,在这个类中我定义了三个属性FirstName, LastName, Age,我想将这三个属性分别显示在三个TextBox中。如果不使用数据绑定我们需要的代码如下。

Person person = new Person("Cai", "Peng", 32); textbox1.Text = person.FirstName; textbox2.Text = https://www.doczj.com/doc/ba13614315.html,stName; textBox3.Text = person.Age; 这样做有什么问题吗?看来是没有什么问题,你的数据可以正常的显示在界面中。问题就在与如果用户修改了textBox1中的数据,你的person对象中的FirstName的值也会更改吗?如果你想确保person.FirstName中的值和你的textBox1.Text的值一致的话你要怎么做?你必须编写相应的代码来完成。比如你可以 在textBox1的TextChanged事件中编写如下的代码: person.FirstName = textbox1.text 这是不使用数据绑定时我们必须要做的事情。在这样的情况下我们为了保证textBox1中的值和对象中相应的数据是一致,我们必须这样做。如果使用数据绑定会怎么样呢? 为了说明以上的这种转变,建立一个winform来说明一下: 在这个项目中我建立了一个Person类和两个界面Form1, Form2.其中Form1不是用数据绑定。 person类:

云南大学-实验六-数据库完整性报告

云南大学软件学院 实验报告 课程:数据库原理与实用技术实验任课教师:刘宇、张璇 姓名:学号:专业:信息安全成绩: 实验6 数据库完整性 实验6-1 完整性约束 1、创建规则(用图形或者语句方法创建) (1)创建入学日期规则“Enter_University_date_rule”,假定该学校于1923年4月30日创建。要求:入学日期必须大于等于学校创建日期,并且小于等于当前日期 测试: (2)创建学生年龄规则“Age_rule”。要求:学生年龄必须在15~30岁之间

测试: (3)创建学生性别规则“Sex_rule”。要求:性别只能为“男”或“女” 测试:

(4)创建学生成绩规则“Score_rule”。要求:学生成绩只能在0~100之间 (5)用图形方法查看学生成绩规则“Score_rule”,截图为: 双击:成绩: (6)用语句方法查看学生成绩规则“Score_rule”,语句为:

2、删除规则Enter_University_date_rule 3、创建默认(用图形或者语句方法创建) (1)创建默认时间“Time_default”为当前系统时间 (2)创建默认入学年龄“Age_default”为18岁 (3)用图形方法查看默认入学年龄“Age_default”,截图为:

(4)用语句方法查看默认入学年龄“Age_default”,语句为: 4、删除默认入学年龄“Age_default” 5、创建声明式默认:在创建表的过程中创建声明式默认 (1)创建表“default_example”,表中包含字段pid、name、sex、age。要求设定sex的默认值为“男”、age的默认值为18。 编号姓名性别年龄 101 苏晴女 201 马拯山20 执行结果为: 输入数据:

6实验六-数据库完整性

实验报告书 课程名《数据库原理与应用A 》题目:数据库完整性 班级: 学号: 姓名:

1、实验内容或题目 数据库完整性 2、实验目的与要求 (1)掌握sql server 2005 数据库完整性的机理,理解并掌握约束。 (2)进行实验操作。 3、实验步骤与源程序 ⑴实验步骤 掌握Sql server 2005基本语句的使用,主要是PRIMARY KEY约束、FOREIGN KEY约束、UNIQUE 约束、CHECK约束、NOT NULL。 练习Sql server 2005基本语句的使用。 完成实验报告。 ⑵编写源代码 SQLQuery1(例13.1,在test数据库中创建department表,其中指定dno为主键): use test go create table department ( dno int primary key, dname char(20), ) go SQLQuery2(例13.2,使用FOREIGN KEY子句进行相关操作): use test go create table worker (no int primary key, name char(8), sex char(2), dno int foreign key references department(dno) on delete no action, address char(30) )

go SQLQuery3(例13.3,在test数据库中创建table5表,其中指定c1列不能包含重复的值): use test go create table table5 ( c1 int unique, c2 int ) go insert table5 values(1,100) go /*插入下一行,则会出现错误消息*/ insert table5 values(1,200) SQLQuery4(例13.4,在test数据库中创建table6表,其中使用CHECK约束限定f2列为0-100分): use test go create table table6 ( f1 int, f2 int not null check(f2>=0 and f2<=100) ) go /*插入下一行,则会出现错误消息*/ insert table6 values(1,120) SQLQuery5(例13.5,在test数据库中创建table7表,其主键为c1和c2,将其中插入两个记录,输出这些记录): use test go create table table7 ( c1 int, c2 int, c3 char(5), c4 char(10), constraint c1 primary key(c1,c2) ) go use test insert table7 values(1,2,'ABC1','XYZ1') insert table7 values(1,2,'ABC2','XYZ2') go select*from table7 go

C#Winform实验指导书

南阳理工学院 C#WINFROM上机实验指导书 (2011版) 软件学院·软件工程教研室 2011.3

目录 实验1 WINDOWS基本控件 (2) 实验2 文件操作 (3) 实验3数据库编程(一) (4) 实验4数据库(二) (5) 实验5数据库编程(三) (8) 实验6 GDI+操作 (9) 实验7 多线程 (11) 实验8文件访问程序设计 (14) 实验9综合设计 (17)

实验1 Windows基本控件 一、实验目的 1.掌握windows控件的使用方法; 2.掌握windows基本控件的常用属性、方法及事件; 二、实验内容及步骤 1.本次实验中用到的Windows基本控件 Label控件 Button控件 TextBox控件 RadioButton控件 CheckBox控件 ListBox控件 ComboBox控件 GroupBox控件 TabControl控件 DataTimePicker控件 2:设计一个学生信息窗体,要求如下: 1.学生信息如下:学号、姓名、性别、年龄、籍贯、党员 2.性别显示男、女两项,用户只能选择其中一项;是否党员采用复选框。 其余信息采用文本框输入。 3.输入完性别后,在窗体下端显示该学生的“学号姓名性别年龄”;选中“党员”,显示“入党时间2005年”。 4.在窗口下端设置一按钮,名称为“输入简历”,单击后打开简历输入窗体。

实验2 文件操作 一、实验目的 1.掌握文件操作的类,对象,以及各种方法 2.理解File类,FileInfo类,Directory类和Directory类 3.理解Filestream等对象的使用方法 二、实验内容及步骤 1:读取操作系统的记事本文件 2:能够使用File类中的各种方法对文件进行删除,移动,重命名等操作3:读取操作系统的目录属性 4:能够使用Directory类中的各种方法对目录进行删除,移动,重命名等操作

数据库上机实验1

实验7数据库应用系统实例 一、实验目的 学会https://www.doczj.com/doc/ba13614315.html,和https://www.doczj.com/doc/ba13614315.html,数据库连接、数据操程序编写,熟练使用Microsoft Visual Studio 2005开发平台开发学生学籍管理系统小型数据库应用系统。 二、实验内容和要求 1.连接SQL Server的数据访问编程实例 2.利用Microsoft Visual Studio 2005开发平台开发一个学生学籍管理系统小型数据库应用系统,对前面实验所建立的studb学籍数据库中的数据通过应用系统界面进行更新和查询等操作。 三、实验步骤和结果 使用企业管理器创建数据库studbXXX(其中XXX为本人学号后三位,以下同) 在数据库studbXXX中创建表SXXX、CXXX、SCXXX,其属性如下: S(SNO,SNAME,AGE,DNAME) C(CNO,CNAME,CREDIT,PRE_CNO) SC(SNO,CNO,SCORE) 分别设置主键和外键 1.连接SQL Server的数据访问编程实例 编写一个应用程序来连接数据库名studb的SQL Server数据库,并根据连接结果输出一些信息。 (1)运行“开始|Microsoft Visual Studio 2005|Microsoft Visual Studio 2005”,在出现的“选择默认环境设置”中选择“Visual C#开发设置”选项,点击下方的“启动Visual Studio”命令按钮,进入“Microsoft Visual Studio”起始页。如图143所示。 图143“Microsoft Visual Studio”起始页 (2)从图143“Microsoft Visual Studio”起始页的左上侧“最近的项目”列表中点击“创建”中的“网站”选项,进行“新建网站”对话框。在“新建网站”对话框中“模板”列表

数据库试验3答案

实验三:交互式SQL语句的使用 1、实验目的 (1)掌握数据库对象的操作过程,包括创建、修改、删除 (2)熟悉表的各种操作,包括插入、修改、删除、查询 (3)熟练掌握常用SQL语句的基本语法 2、实验平台 使用SQL Server提供的Microsoft SQL Server Management Studio工具,交互式使用SQL语句。 3 实验内容及要求 选择如下一个应用背景之一: 学生选课系统?习题3、4、和5中使用的数据库?其它你熟悉的应用?。)建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作1((2)要求认真进行实验,记录各实验用例及执行结果。 (3)深入了解各个操作的功能。 实验要求包括如下方面的内容:3.1 数据定义 1.基本表的创建、修改及删除 2.索引的创建 3.视图的创建 3.2 数据操作 完成各类更新操作包括: 1.插入数据 2.修改数据 3. 删除数据 3.3 数据查询操作 完成各类查询操作 1.单表查询 2.分组统计 3. 连接查询 4. 嵌套查询 5. 集合查询 3.4 数据操作 1.创建视图 2.视图查询 参考示例:

建立一个学生选课数据库,练习对表、视图和索引等数据库对象的各种操作。数据定义一、创建学生选课数据库ST,包括三个基本表,其中Student表保存学生基本信息,Course表保存课程信息,SC表保存学生选课信息,其结构如下表: 表1. Student表结构 列名用类长约备 主字学Sn 字姓Snam 字符2性别Ssex 整型年龄Sage 字符20Sdept所在系字符4Sclass班级 表2. Course表结构 1.创建、修改及删除基本表(1Student表)创建Student TABLE CREATE, CHAR (Sno(8)PRIMARY KEY8 Sname CHAR(), NOT NULL,)Ssex CHAR(2 ,Sage INT CHAR(20)Sdept); )创建Course表(2Course TABLECREATE (Cno KEY PRIMARY,)CHAR(4NOT(Cname CHAR40)NULL, 4(), CHAR Cpno SMALLINT,Ccredit); (表SC3)创建SC CREATETABLE 8CHAR Sno(()FOREIGNKEY Student Sno(),REFERENCES)(Sno Cno 4(CHAR), Grade,SMALLINT); 4()创建员工表Employee

VB数据库操作控件Data详细使用说明

在控件箱中的Data控件是VB用于数据库操作的控件,双击Data控件或单击后在体上拖动出控件的大小,都可以看到Data控件的外观 1.Data控件的常用属性 (1)Connect属性 Connect属性用来指定该数据控件所要链接的数据库格式,默认值为Access,其他还包括dBASE、FoxPro、Excel等。 (2)DatabaseName属性 DatabaseName属性是用于确定数据控件使用的数据库的完整路径。如果链接的Access 数据库,就可单击按钮定位.mdb文件。例如,选择”C:\dbbook.mdb”文件。 (3)RecordSource属性 RecordSource属性用于指定数据控件所链接的记录来源,可以是数据表名,也可以是查询名。在属性窗口中单击下拉箭头在列表中选出数据库中的记录来源。例如,选择客户信息表”Customers”。 (4)RecordsetType属性 RecordsetType属性用于指定数据控件存放记录的类型,包含表类型记录集、动态集类型记录集和快照类型记录集,默认为动态集类型。 表类型记录集(Table):包含实际表中所有记录,这种类型可对记录进行添加、删除、修改、查询等操作,直接更新数据。 动态集类型记录集(Dynaset):可以包含来自于一个或多个表中记录的集合,即能从多个表中组合数据,也可只包含所选择的字段。这种类型可以加快运行的速度,但不能自动更新数据。 快照类型记录集(Snapshot):与动态集类型记录集相似,但这种类型的记录集只能读不能更改数据。 (5)BOFAction和EOFAction属性 在运行时用户通过单击数据控件的指针按钮可移动记录到开始或结尾,BOFAction属性是指当用户移动到开始时程序将执行的操作,EOFAction指当用户移动到结尾时程序将执行的操作。 EOFAcfion值为0(MoveFirst)是将第一笔记录作为当前记录,为1(BOF);9记录的开头。 EOFAction值为0(MoveLast)是将最后一笔记录作为当前记录,为1(EOF)指记录的末尾,为2(AddNew)移动到记录结尾并自动添加一记录。 2.Data控件常用的方法 (1)AddNew方法 AddNew用于添加一个新记录,新记录的每个字段如果有默认值将以默认值表示,如果没有则为空白。 例如,给Data1的记录集添加新记录: Data1.Recordset.AddNew (2)Delete方法 Delete用于删除当前记录的内容,在删除后应将当前记录移到下一个记录。 (3)Edit方法 Edit用于对可更新的当前记录进行编辑修改。 (4)Find方法群组 Find方法群组是用于查找记录,包含FindFirst、FindLast、FindNext和FindPreviou方法,这4种方法查找的起点不同。 Find方法查找起点查找方向。 FindFirst 第一个记录向后查找。 FindLast 最后一个记录向前查找。 FindNext 当前记录向后查找。 FindRrevious 当前记录向前查找 例如,查找”客户号”字段为”10002”的记录: Datal.Recordset.FindFirst″客户号=′10002”, If Datal.Recordset.NoMatchThen ′如果没找到

数据库原理实验报告(6)(含答案)

南京晓庄学院 《数据库原理与应用》 课程实验报告 实验六分组统计查询和集合查询设计 所在院(系):数学与信息技术学院 班级: 学号: 姓名: 1.实验目的

(1)熟练掌握数据查询中分组条件表达、选择组条件的表达方法。 (2)熟练使用统计函数和分组函数。 (3)熟练各类计算和分组计算的查询操作方法。 (4)掌握集合查询的实现方法。 2.实验要求 (1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下查询操作: a)查询各个院系学生的总人数,并按人数进行降序排列。 b)查询各系各门课程的平均成绩。 c)查询每个院系各种职称的教师人数,输出院系、职称、人数。 d)查询数学与信息技术学院学生的平均年龄。 e)查询07294003课程的最高分和最低分。 f)查询选修人数超过30人,且课程号以07开头的课程号、课程名称和选 修人数。按选修人数降序排列。 g)查询选修了5门以上课程的学生学号。 h)查询年龄大于女同学平均年龄的男同学姓名和年龄。 i)查询SC表中最高分与最低分之差大于20分的课程号。 j)查询平均成绩大于75分的课程的课程号、课程名、平均分。 k)查询期末考试平均分排名前10%的学生,输出学号和平均分。 l)查询教师人数最多的前3个院系,输出院系和教师人数。 m)查询全校老师和学生的姓名,输出姓名和类别两列(类别中显示教师或学生),结果按类别排序。 n)用集合查询实现同时讲授过07294003和07295007两门课的老师的工号。 o)用集合查询实现教师表中职称不是教授的老师的详情。 (2)按要求完成实验报告。 3.实验步骤、结果和总结实验步骤/结果 将调试成功的T-SQL语句写在下方(标明题号)。 a)查询各个院系学生的总人数,并按人数进行降序排列。 select DEPT_ID, COUNT(*) 总人数 from dbo.Student group by DEPT_ID order by DEPT_ID desc b)查询各系各门课程的平均成绩。 select DEPT_ID, AVG(EXAM_Grade) as '平均成绩' from dbo.SC,dbo.Student

实验07 GridView控件的简单应用

实验07 GridView控件的简单应用 一、实验目的 (1)掌握VS2008中管理数据库的方法 (2)熟悉掌握GridView控件的应用 (3)了解页面的详细处理流程 二、实验内容 1.动态新闻的实现 2. 将表中字段绑定到GridView中的两种方法 3. GridView与Excel数据的导入和导出 动态新闻的实现,实现方法有两种,一种是使用GridView控件,一种是使用BulletedList 控件生成,具体实现方法如下: 与数据库连接,从新闻表中查询数据并绑定到相应控件可以由代码实现,也可以通过数据源控件SqlDataSource控件实现。 (1)GridView控件 ①通过数据源控件 添加GridView控件。 添加SqlDataSource控件,并配置数据源,智能标记的配置数据源,根据向导一步一步配置即可。配置时要把连接字符串写入Web.config文件,这样当连接字符串发生改变时只需要修改Web.config中的配置即可,不用一个一个修改数据源控件的连接。 GridView控件绑定数据源SqlDataSource控件,通过该控件智能标记的选择数据源选择。 编辑列。智能标记,单击“编辑列”命令,打开编辑列对话框,如下图所示: 在该对话框中删除不需要的列,添加一个ImageField列,并把该列转换为TemplateField (选定该列后单击上图确定按钮上方的超链接按钮即可),添加一个HyperLinkField列,并如上图设置相关属性(所有新闻都在newsshow.aspx页面中显示),修改添加时间字段属性

如下(按指定的格式显示)DataFormatString:{0:yyyy:MM:dd} 编辑模板。GridView控件智能标记,单击“编辑模板”命令,在编辑模板状态设置图片大小并设置ImageUrl属性。单击智能标记,执行“结束模板编辑”命令。 设置GridView控件的Font属性和ShowHeader属性为false。 在浏览器当中查看,效果如下图所示: 去掉上面超链接列中的下划线: //定义样式,可以在CSS中定义,也可以定义在页面 然后在编辑列中设置HyperLinkField的ControlStyle样式,把其中的cssclass属性写上text 就行了 (2)BulletedList控件 添加BulletedList控件并绑定数据源控件,其中显示数据字段和选择数据字段设置如下图所示。 设置相关属性如下:

数据绑定控件的用法

第11周 教学目标 通过本周的学习使学生熟练掌握在不使用数据源控件的前提下GridView、DetailsView、FromView、DataList、Repeater和ListView这几种数据绑定控件的用法,能够根据页面操作的要求正确选择有关控件。 教学重点 掌握各种数据绑定控件GridView、DetailsView、FormView、ListView、Repeater、DataList的用法。 教学难点 在不使用数据源控件的情况下使用各种数据绑定控件展示及更新数据。GridView、DetailsView控件的模板列的定制及ListView、Repeater、DataList 控件各种模板的定义。 教学过程 各种数据绑定控件的常用用法: 1、GridView控件是以网格的形式显示多条记录,可实现分页、排序,并可对记 录进行选择、编辑、删除操作。(但不能进行插入) (1) GridView控件提供了多种列类型,默认是BoundField类型,这种类型的列在显示态时是以Label的形式显示数据,在编辑态时用 TextBox来接受用户输入。如果BoundField列不能满足用户要求, 可以使用其他类型的列来绑定数据,或者使用TemplateField列定 制在不同模板下的列的显示情况。 (2) GridView的模板列主要有以下几种:ItemTemplate、AlternatingItemTemplate、EditItemTemplate、HeaderTemplate、 FooterTemplate。 (3) GridView提供了三种操作的命令按钮列CommandField,分别是“选择”、“编辑”和“删除”,要设置对应的ShowSelectButton、

数据绑定习题

第9章数据绑定 一、选择题 1.在Web页面中中有一个名为dgStudent的GridView控件,为了禁止用户对该控件中的数据进行排序,应该添加()代码,以使GridView控件失去排序功能。 A.dgStudent.AllowSorting=true; B.dgStudent.AllowNavigation=true; C.dgStudent.AllowNavigation=false; D.dgStudnet.AllowSorting=false; 2.在GridView上实现光棒效果,说法正确的是()。 A.在页面加载时,插入高亮显示的脚本B.在数据绑定时,插入高亮显示的脚本 C.在数据绑定后,插入高亮显示的脚本D.在数据行绑定时,插入高亮显示的脚本 3.以下控件,不是迭代控件的是()。 A.Repeater控件B.DataList控件C.GridView控件D.FormView控件 4.在ADONET中,已知有一个名为dsBook 的数据集,数据集中有一名为book 的数据表,下列能够正确将一个名为dgBook 的GridView 控件与数据集进行绑定的是()。 A.dsBook.SetDataBinding(dgBook,”book”);B.dsBook.SetDataBinding(dgBook); C.dgBook.SetDataBinding(dsBook,”book”);D.dgBook.SetDataBinding(dsBook); 5.在https://www.doczj.com/doc/ba13614315.html,中,下列可以作为GridView控件的数据源是() (1)DataSet (2)DataTable (3)DataView A.1和2 B.1和3 C.2和4 D.1. 2 3都可以 6.下列不属于ListControl类控件的是()。 A.GridView B.DropDownList C.ListBox D.CheckBoxList 7.要为DropDownList控件绑定主键值,需要设置其()属性。 A.DataSource B.DataValueField C.DataTextField D.Text 8.执行数据绑定表达式时,需要在Page_Load事件中编写下面哪段代码()。 A.Page.DataBind(); B.this.DataBind(); C.DataBind(); D.GridView.DataBind(); 9.以下选项中不属于简单数据绑定的是()。 A.属性绑定B.表达式绑定C.集合绑定D.GridView数据绑定

ASPNET五大数据控件

ASPNET 五大数据控件 1. 插入功能方面: DetailsView 和FormView 具有插入功能,其它控件没有 2. 模板DataList\FormView\Repeater 三种必须编辑模板,而GridView 和DetailsView 只有在将列转换成模板列以后才会显现各种模板. 3. 自动分页功能 GridView ,DetailsView 和FormView 差不多上2.0 版本新增控件,内置了分页,排序等等功能, 其他需要手工定义 4. 数据出现方式: GridView,DataList,Repeator 用于出现多列数据, DetailsView,FormView 用于出现单列数据,即常用的数据明细. DataList和Reapter都需要编辑模板列,而在模板列当中能够添加Text Box,同时能够指定TextBox的ID从而实现提取用户输入的值,然而Data Grid 和GridView 两个件是不需要编辑模板的,它的编辑功能是自动生成的我们无法明白那些文本框的ID ,也就无法通过ID 来猎取用户的输入,那么能够通过对单元格的引用来实现: private void DataGrid1_UpdateCommand(object source,xx) { stri ng bkid二DataGrid1.DataKeys[e.ltem」teml ndex].toStri ng();〃提取主键 string bktitle=((TextBox)e.ltem.Cells[1].Controls[0]).Text;// 提取用户的输入 } 一. 进入编辑状态: DataList1.EditItemIndex = e.Item.ItemIndex; DataGrid1.EditItemIndex = e.Item.ItemIndex; GridView1.EditIndex = e.NewEditIndex;

数据库窗体实验练习(附答案)

1 使用自动窗体工具创建“人员信息维护”窗体,保存名称为“窗体1”。进行下面的操作。 1) 使用向导添加命令按钮,标题为“下一项”,动作选择记录导航中的下一项记录。 2) 使用向导添加命令按钮,标题为“前一项”,动作选择记录导航中的前一项记录。 3) 使用向导添加命令按钮,标题为“保存”,实现保存修改的功能。 4) 使用向导添加命令按钮,标题为“删除”,实现删除当前记录的功能。 3) 设置窗体属性,使“记录选择器”、“导航按钮”、“分隔线”均不显示。 2 基于“图书进货表”创建窗体“进货情况”(自动创建或向导都可以),在设计视图中进行下面的操作: 1) 添加名称为“支出总额”的文本框(右下角)绑定到计算式,使文本框显示进货支出的金额。 2) 将所有文本框控件的“锁定”属性(属于数据类别,限制控件内容不可改)设置为“是”。

提示: 1) 计算控件即把控件的“控件来源”属性绑定到一个计算式,比如=1+1。注意计算式以=开始。每笔进货的支出总额是单价和数量之积。 2) 如果个控件需要设置同样的属性,可以选中这些控件同时设置(鼠标圈选,或者按Shift 键单击更多对象)。“锁定”属性为“是”使文件框等控件不能输入。 3 创建“图书销售窗体” 1) 使用“图书销售表”作为数据源,创建窗体。自动创建、向导、设计 视图均可使用。 2) “图书编号”的输入选用组合框,能列出所有图书的编号和名称供选 择。 3) 使用控件向导添加“新记录”和“保存”按钮,实现相应功能。 4) 设置窗体属性“数据输入”为“是”,窗体将只能添加记录,不能修改 已有记录。

4(综合)创建窗体“按名称查询图书信息”,实现按关键词查询图书信息的功能。 提示: 1 查询中需要使用参数,参数值取自于窗体中的控件。如果实现按部分图书名称查询 (比如查询名称含有“计算机”的图书),需要使用Like运算。 2 在窗体中打开查询,可以通过按钮实现。使用向导添加按钮,选择“杂项”类别中 的“运行查询”。也可以使用子窗体显示查询结果。 3 具体做法可参考窗体第二次课教案中的内容。

sql 数据库 实验6答案

实验六:数据表综合查询 四、实验内容 以数据库原理实验4数据为基础,请使用T-SQL 语句实现进行以下操作: 1.查询名字中第2个字为‘向’的学生姓名和学号及选修的课程号、课程名; select a.sname,a.sno,https://www.doczj.com/doc/ba13614315.html,o,https://www.doczj.com/doc/ba13614315.html,ame from student a,course b,sc c where a.sname like'_向%'and a.sno=c.sno and https://www.doczj.com/doc/ba13614315.html,o=https://www.doczj.com/doc/ba13614315.html,o 2.列出选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修 课程号及成绩; Select a.sno,sname,sdept,https://www.doczj.com/doc/ba13614315.html,o,grade from student a,course b,sc c Where https://www.doczj.com/doc/ba13614315.html,ame in('数学','大学英语')and a.sno=c.sno and https://www.doczj.com/doc/ba13614315.html,o=https://www.doczj.com/doc/ba13614315.html,o 3.查询缺少成绩的所有学生的详细情况; Select*from student Where sno in(select sno from sc where grade is null) 4.查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息; Select*from student Where sage<>(select sage from student where sname='张力') 5.按照?学号,姓名,所在院系,已修学分?的顺序列出学生学分的获得情况。 其中已修学分为考试已经及格的课程学分之和; Select a.sno,sname,sdept,sum(ccredit)as已修学分from student a,course b,sc c Where grade>60 and a.sno=c.sno and https://www.doczj.com/doc/ba13614315.html,o=https://www.doczj.com/doc/ba13614315.html,o group by a.sno,sname,sdept 6.查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;Select a.sno,a.sname,https://www.doczj.com/doc/ba13614315.html,o from student a,sc c where Cno in(select Cno from sc where sno in(select sno from student where sname='张力')) and a.sno=c.sno 7.查询只被一名学生选修的课程的课程号、课程名; select cno,cname from course where cno in(select cno from sc group by cno having COUNT(*)=1) 8.使用嵌套查询出选修了?数据结构?课程的学生学号和姓名; select sno,sname from student where sno in(select sno from sc where Cno=(select Cno from course where cname='数据结构')) 9.使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和

相关主题
文本预览
相关文档 最新文档