基于C#窗体的数据库应用系统_第1页
基于C#窗体的数据库应用系统_第2页
基于C#窗体的数据库应用系统_第3页
基于C#窗体的数据库应用系统_第4页
基于C#窗体的数据库应用系统_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于C#窗体的数据库应用系统开发基础与方法(4课时)第1页,共35页。第2页,共35页。内

容简易成绩管理系统介绍及需求分析可枚举类型与集合绑定及作用数据集及作用适配器及作用ADO.NET应用系统体系结构LINQ,

LINQ

to

SQL,

Entity

Framework系统框架实现(实例)第3页,共35页。1简易成绩管理系统介绍及需求分析本需求分析方法、步骤适用管理信息系统1.调研系统应用环境模拟成绩管理;课程如‘1年级1学期语文’标识,一门课程可分多个教学班级,每个班级有唯一的一个任课老师;局域网内运行。第4页,共35页。2.获取成绩管理业务工作的工人[可能成为未来系统的参与者(一个系统用户可以执行多个参与者的操作)]及工作内容成绩管理员:课程管理、教学班安排、学生管理、老师管理、成绩修改、打印成绩表等任课教师:班级成绩登记、打印成绩登记表等学生:查询本人成绩等第5页,共35页。3.从参与者获取处理数据资料1)成绩管理员:课程信息、班级信息、老师信息、学生信息、成绩信息等任课教师:相关班级成绩信息等学生:本人成绩信息等作为教学案例,简化系统:老师指任课老师和管理员,用角色区分,并作为系 统用户。成绩登记过程分两步:①录入-暂存(*);②提交。 因此,成绩信息包括暂存成绩和确定成绩。学生不作为系统用户。4.数据库说明:①设计表TempResult的目的是为了网格录入中学生名称列显示的方便,另外对于更复杂的成绩管理系统设计此表可提高编程方便性和运行效率②在Teach表中增加state是为了控制成绩录入过程第6页,共35页。2.1可枚举类型

实现了接口IEnumerable或泛型接口

IEnumerable<T>的类型是可枚举类型

如果一个类定义了GetEnumerator()方法,其对象可作为foreach

in和LINQ中的from

in表达式第7页,共35页。枚举器实现接口IEnumerator或泛型接口IEnumerator<T>第8页,共35页。第9页,共35页。2.2集合

仅提供枚举功能的低级集合接口,如IEnumerable和IEnumerable<T>;

提供大小、枚举和同步操作的集合接口ICollection和提供大小、枚举、添加元素和移除元素等操作的泛型集合接口ICollection<T>;

提供可按照索引访问元素的高级集合接口,如IList和IList<T>;

提供专用功能的字典集合接口,如IDictionary和IDictionary<TKey,TValue>等;提供通用功能的集合类,如ArrayList和List<T>;

提供专用功能的集合类,如Hashtable、Queue、Stack、Dictionary<TKey,TValue>、Queue<T>和Stack<T>等。3绑定及作用数据绑定,即建立控件属性与对象属性(或对象列表中当前对象属性)之间关系,以实现数据同步。(M)(V)(C)ReadValueWriteValue控件属性Binding类对象对象属性或对象列表[IList]当前对象属性[get,set]第10页,共35页。绑定例子BindingSamples/BasicBinding:第11页,共35页。alseBindingSource类对象

BindingSource

组件有多种用途。它在Windows

窗体控件与数据源之间提供流通管理[CurrencyManager]、更改通知和其他服务,简化了窗体上的控件到数据源的绑定。通过它的DataSource

属性将BindingSource

组件关联到数据源。BindingSamples/ListBinding:bsbsbsbsbsbs第13页,共35页。4数据集及作用

System.Data命名空间提供ADO.NET体系结构中内存数据库访问功能的类。DataSet对象,简单说是一个轻量级的内存数据库。

DataSet主要相关类型DataTable、DataRow、DataColumn、DataRelation及对应的集合类

(*Collection),Constraint及子类(UniqueConstraintForeignKeyConstraint)和ConstraintCollection,等等类型化数据集与非类型化数据集。

作用:象数据库一样临时保存结构化数据,提供插入、删除、修改数据等功能;缓冲数据库中的数据,为快速高效更新数据库数据提供基础。第14页,共35页。数据集对象与控件绑定的对象关系图第15页,共35页。DataSet对象绑定ReslutMan\ReslutMan:第17页,共35页。5适配器及作用

使用、、或命名空间,可访问要与

DataSet结合使用的数据源。每个.NETFramework数据提供程序都有相应的

DataAdapter

适配器是数据源[即数据库]和DataSet之间的桥梁。不通过适配器访问数据库使用的对象关系图第18页,共35页。Connection对象ReslutMan\ReslutMan:第19页,共35页。Command对象-ExecuteNonQuery()ReslutMan\ReslutMan:cmd.ExecuteNonQuery()Command对象-ExecuteReader()ReslutMan\ReslutMan:cmd.ExecuteReader()Command对象-ExecuteScalar()ReslutMan\ReslutMan:第22页,共35页。cmd.ExecuteScalar()Command对象-存储过程调用ReslutMan\ReslutMan:第23页,共35页。CreateTeachTempResultCommandType.StoredProcedure通过适配器访问数据库使用的对象关系图第24页,共35页。SqlDataAdapter-Fill与DataSet对象ReslutMan\ReslutMan:第25页,共35页。SqlDataAdapterDataSetad.Fill系统的体系结构第26页,共35页。:apter对象-Up/d/查a看t生e成的SQL语句和参数ReslutMan/FoSrqlmC2om.macnsd

cmd

=

scb.GetUpdateCommand(true);String

s

=

cmd.CommandText

+

Environment.NewLine;foreach

(SqlParameter

p

in

cmd.Parameters){s

+=

"Name="

+

p.ParameterName

+

",Type="

+

p.SqlDbType.ToString()+

Environment.NewLine;}

//MessageBox.Show(s);应该通过

VS提供的工具自动生成类型化数据集和适配器第28页,共35页。7.1

LINQ

(Language

Integreted

Query)

传统上,针对数据的查询都是以简单的字符串表示,而没有编译时类型检查或IntelliSense支持。此外,还必须针对以下各种数据源学习不同的查询语言:SQL

数据库、XML文档、各种Web服务等。

在Visual

Studio

2008以后,可以在C#下为各种数据源编写LINQ查询:SQL

Server数据库、XML

文档、ADO.NET数据集以及支持

IEnumerable

或泛型IEnumerable<(Of<<T>)>>接口的任意对象集合。所有LINQ

查询操作都由以下三个不同的操作组成:获取数据源创建查询执行查询LINQ例子,更多例子见ReslutMan/LINQSample//

The

Three

Parts

of

a

LINQ

Query:int[]

numbers

=

new

int[]

{

0,

1,

2,

3,

4,

5,

6

};//

numQuery

is

an

IEnumerable<int>var

numQuery

=from

num

in

numberswhere

(num

%

2)

==

0select

num;foreach

(int

num

in

numQuery){Console.Write("{0}

",

num);}第29页,共35页。第30页,共35页。7.2

LINQ

to

SQL

LINQ

to

SQL

是LINQ的一个组件,提供了用于将关系数据作为对象管理的运行时基础结构。

在LINQ

to

SQL中,关系数据库的数据模型映射到编程语言表示的对象关系模型(ORM)。

TO:当应用程序运行时,LINQ

to

SQL将对象模型中的语言集成查询转换为SQL,然后将它们发送到数据库进行执行。

FROM:当数据库返回结果时,LINQ

to

SQL

将它们转换编程语言处理的对象。

在项目中添加‘LINQ

to

SQL类’项,即可产生与特定数据库相关的一系列类。查看扩展名为dbml及相关文件。LINQ

to

SQL例子,见ReslutMan/LINQtoSQLon第31页,共35页。equalsfrom

injoin

inwhereselect第32页,共35页。7.3

Entity

Framework

LINQ

to

SQL和Entity

Framework都是一种包含LINQ功能的对象关系映射技术。

它们之间的本质区别是,EF对数据库架构和查询的类型实行了更好的封装。使用EF,查询的对象不再是完全对应数据库架构的C#类,而是更高层的抽象:Entity

Data

Model。

LINQ

to

SQL是一个轻量级的ORM框架,为Microsoft

SQL

Server数据库提供快速的应用程序开发,优点是易于使用、简单、高性

能。Entity

Framework的优点是为创建数据库架构和实体类之间的映射提供了更好的灵活性,还支持第三方数据库。

在项目中添加‘ADO.NET实体数据模型’项,即可产生与特定数据库相关的一系列类。查看扩展名为edmx及相关文件。LINQ

to

SQL与Entity

FrameworkLINQ

to

SQLEntity

Framework复杂度相对不复杂相对比较复杂模型域模型(Domain

model)概念数据模型(Conceptual

data

model)数据库服务器SQL

Server多种数据库产品开发时间快速应用开发需要较长时间,但支持更多特性继承困难容易文件类型DBML文件EDMX,C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论