access数据库表间关系该怎么设置使得可以互相更改

access数据库表间关系该怎么设置使得可以互相更改,第1张

1首先打开Access数据库后,建立两个数据表来作为举例。

2建立好数据表以后,点击表可以看到两个表中包含不同的字段内容,如果要查询任何一个字段的记录内容,就要将两个表建立起关系,相互关联。

选中任何一个表,然后点击工具栏上的视图图标。

3现在切换到设计界面,点击工具栏上的关系按钮,打开关系窗口。

4在关系窗口的添加表中,依次选择要添加的表,然后点击添加按钮,将表添加到关系窗口中。添加好以后点击关闭,回到关系窗口。

5鼠标点击其中一个表的主键字段,即没有重复值的唯一字段。按住鼠标不放,然后拖动到另一个表的相同字段松开,在d出的窗口中点击确定。

6现在两个表已经建立了以上岗证号为关联的关系。以后可以通过查询来显示任何一个表中的符合条件的字段记录。

其实就是C#访问VISIO的自动化模型,以前做了不少C#和Excle及word 的交互工程,在用VS2010 尝试开发Visio 2007项目时,却忘了当时要安装Office 2003 开发SDK。所以开发visio工程,也要下载安装office 2007 开发sdk。英文版的。

然后就建立一个C#项目。在工具箱上点右键,选择“选择项”,在打开的对话框中选择“com控件",在其中找到visio 120 drawing control。然后该控制就被添加到工具箱。还需要引用类型库否?貌似是不需要。

在cs文件中using SystemRuntimeInteropServices;

using MicrosoftOfficeInteropVisio;之后,就可以引用对象

也可以直接访问拖上form的visio 控件。

axDrawingControl1WindowShowRulers = 0;

axDrawingControl1WindowShowGuides =   0;

axDrawingControl1WindowShowPageTabs =   false;

axDrawingControl1WindowZoom = -1;

axDrawingControl1WindowApplicationDocumentsOpenEx(stencilPath,(short)VisOpenSaveArgsvisOpenRO+(short)VisOpenSaveArgsvisOpenDocked);

注意由于office系列的本质是vb模型,所以在C#中调用要有一些变化,比如showguides等属性设置不能直接用true和false。以前在开发excle时,还有调用模型方法时VB的变参到C#调用的转换问题。下面的openEx,将以只读和dock方式打开一个自己创建的“模具”(vss文件),这个模具将同样出现在控件窗口内,供visio文档绘图使用。

如何使用C#进行Visio二次开发-总结版

很久没有写C#进行Visio二次开发的文章了,这次温习一下Visio二次开发的相关知识,全面总结一下Visio 二次开发的方方面面。一方面让对Visio的开发不太了解人员有一个全局的认识,对已经看过我前面文章的人来一个回顾总结。

本次主要根据我在Visio二次开发过程中,获得的一些实际系统开发经验以及学习历程,分三个方面对下面内容进行介绍:

1)介绍C#的Visio二次开发管理系统的架构设计思路

2)介绍C#进行Visio开发的准备工作

3)Visio的编程对象模型

1)Viso二次开发管理系统的架构设计思路

为了,有效的模仿Office界面,我们使用了很多相似工具条图标,图标有一个透明的颜色,可以使得图标展示更加完美,不留底图背景的痕迹。

当然,整个布局使用了很有名的WeifenLuoWinFormsUIDockContent, 来使得界面更加完美,另外,有一点值得提及的是,为了使得工具条可以移动,分段等 *** 作,这里还使用了框架本身提供的ToolStripPannel面板。

下面对系统的各个界面区域做一个总体的说明,首先我们看看下面的图形,我分了几个部分。

其中红色部分是Visio控件本身的内容,左边的形状(也称模具)窗口,是通过调用打开形状文件而呈现出来的。我们做Visio的二次开发,多数是和这个控件打交道了。其他部分,设计好界面后(主要涉及布局界面的设计使用了),只需要调用相关的API接口就可以实现相关的功能了。

Viso二次开发架构设计图

整个系统的架构设计如下图所示,其中绿色部分为外部控件,其他部分为自己编写的代码,边界也划分的比较清晰,界面层只是和业务逻辑层交互,不会直接 *** 作数据库或者Visio文件,这两个部分交给下面数据访问层(DAL) 和 Visio对象访问层(VOL)进行封装调用。数据访问层对数据库的访问,是通过微软的企业库Enterprise Library库进行调用的,这样可以保证更少的代码,更高的代码质量。其中实体层和通用层是各个模块的共用的内容。

Visio的二次开发,除了需要 *** 作Visio的文件(包含多个模具文件,Viso文档)还有就是也需要和数据库打交道。

为了较好区分和协调他们的访问,我设定了一个访问边界:访问数据库的层不会访问Visio文件对象,访问Visio文件对象的不会去访问数据库,它们统一由业务层(Business)调配,各层之间分享Entity层的信息即可。

数据库的底层访问通过利用Enterprise Library的模块完成,因此DAL层只需要做较少的工作即可完成对数据库的访问了。

Visio的二次开发图纸审批流程

图纸只有通过了编辑后,同时校对、和审核才能够发布,已发布的图方可供Web 端查看。

保存图纸的时候,如果是制图员,将在图纸“制图”栏目中填写用户名,并擦除复核、校对、签发的用户名,图纸状态恢复“编辑”状态;如果是校对或者复核人员,将在“校对”或者“复核”中填写用户名,并擦除“签发”的用户名,图纸恢复“已校对”或者“发布中”的状态;如果是签发人员,系统询问“是否发布”,选择是图纸状态变为“已发布”,否则变为“发布中”,并擦除签发的用户名。

整个发布的流程,是通过属性值进行判断,没有涉及太多的流程内容,因此对图纸的发布 *** 作也相对比较简单。

系统模具对象关系

整个系统设计很多类型的模具对象,所有的设备都有一个字段用来表示其属于那种设备,设备基本上分下面为几类:一类是纯粹的符号,不涉及统计等信息,如河流、道路等;一类是线路设备,包括母线、电缆、架空线;一类是开关,包括负荷开关、刀闸、继保开关等;一类是变压器,包括公用变压器、专用变压器等。

模具的设计比较讲究,由于Visio在图纸分析的时候,如果是组合的模具图标,会认为是两个模具图标,对于拓扑分析非常不利,因此所有的模具均是通过ShapeSheet中的Geometry形状进行绘制,这样就保证整个模具是一个整体,模具绘制是个非常精细复杂的工作,还需要考虑文本、开关闭合等事件的界面处理效果,这个如果需要了解和掌握,需要开几节课程才能讲的清楚。下图大致绘制出了系统中设备的层次关系图,注意仅是概念图,真实的系统中,设备直接没有继承关系。

Visio二次开发的设备状态跟踪

对于一个使用Visio进行二次开发的程序来说,背后你需要知道用户增加了那些设备,删除了那些设备,修改了那些设备(移动或者更改了文字、属性等 *** 作),这样你才能对整个系统的数据进行有效的控制。如果需要知道这些,那么你对设备的状态跟踪就显得非常重要,特别是一个删除设备的 *** 作,设计到需要删除相关的内容的时候,这项工作就特别的重要了。

由于设备的状态更新频繁,为了系统的稳定及效率,整个系统是在图纸保存或者修改的时候,并不保存相关的设备信息;当图纸发布的时候,清空原来的数据库设备信息表,重新遍历图纸的设备信息,把它一次性写到数据库中,这样保证了发布图纸设备信息的权威性,同时提高了系统的性能。

Visio对象状态跟踪的事件侦听

在C#的Viso开发例子中,都建议采用事件侦听的方式进行处理相关的内容,这是一个很好的突破(相对VB中的开发例子而已),不过处理也有一些麻烦,主要是观念的转变以及细节的考虑吧。在这里,你可以侦听到任何你关注的事件,然后通过自定义的函数,实现自己的业务处理,这种方式实现起来确实比较简洁,思路非常清晰。

Visio对象数据库对象及关系

为了保持Visio的相关设备信息,你需要在数据库中建立相关的表,来存储设备属性信息以及图纸信息,方便信息的统计查询,图纸更可以通过Web进行查看等。

其中的Device1是一个根据SystableField表自动生成出来的设备表,它的表名会自动在SysDeviceTable中注册,方便寻找对应设备类型是哪个表。SystableField是差不多是根据Visio对象里面的属性定义的一个拷贝,里面记录了字段名称、字段类型、是否可见、排序、格式、默认值等这些Visio属性定义里面有的(你打开ShapeSheet中就看到每个属性对应一行的定义信息,就是这里面的内容的存储了)。

系统里面有一个VisioImage和VisioImageRelease的表,一个是存放增加或者修改的图纸内容(二进制存储),一个是存放发布后的图纸(二进制存储),我们系统打开图纸的侯,就是写在这个表的二进制文件,还原成Visio文件,进行打开的。

2)C#进行Visio开发的准备工作

安装Visio2007、VisioSDK2003和2007版

Visio2007是推荐的开发版本,因为目前基本上Visio2007应用比较多了,而且2003估计也买不到了,另外Visio的SDK,建议两个版本的都要安装,互补下相信息的不足。如VisioSDK2003中 有对象模型图,2007中没有。

熟悉Visio Drawing Control控件使用

这个控件的熟悉使用时非常重要的,因此在开发之初,最好能够多用这个控件做一些简单的例子,了解里面的各种属性、函数,以及事件的处理等。这样对于开发一个复杂的系统,是非常有帮助的。

Visio开发帮助文档

      VisSDKchm

      Visio Code Samples Librarychm

这两个帮助文档基本上涵盖了Visio开发的方方面面,其中有很多代码可以用来做参考,里面对于一些概念或者对象的说明及分析,也是非常独到和有帮助的,虽然是英文的内容,看起来比较费劲,但是开发文档的英文都是比较简单的,应该多看看。

Visio2007文档 *** 作

     查看ShapeSheet属性及帮助内容

这个是无可替代的开发熟悉内容,里面的对于各个ShapeSheet的属性描述,更是进阶高级Visio开发的必经之路。

Visio宏的录制

要熟练掌握Office的宏录制和查看功能,对于Visio开发来说就是熟悉和了解宏代码了,里面如何 *** 作Visio对象,是很有参考意义的。

设置Visio文档的开发人员模式

切换Visio的ShapeSheet视图

ShapeSheet视图

3)Visio的编程对象模型

Visio二次开发中,对于其对象模型的了解,就写我们吃饭用筷子一样重要,否则不熟悉筷子的使用场景和方法,是吃不到东西的。

其中主要的是下面几个对象:

Application

Window (ApplicationActiveWindow)

Document (ApplicationActiveDocument)

Master、Shape、Cell

一个程序中,就只有一个Application对象,类似进程的概念;打开的Visio文件有很多窗口,有一个ActiveWindow的主窗口,选区窗口、形状窗口等;模具文件打开后也是一个Document、打开的Visio文件也是一个Document、ActvieDocument是指当前Visio窗口对应的文档,每个Visio的Document有一个或者多个Page,如系统中有两个Page、一个为绘图Page,一个为背景Page。

模具文件里面有很多Master,Master类似于模板的概念,一个Master代表一个设备类型、Shape是定义一个图形的信息,模具里面的Master有且只有一个Shape,每个Shape又有很多Cell,代表一个ShapeSheet里面的一个格子,每个格子都有一个唯一的引用名称的。

Visio文档里面,和模具文件不同,里面一个大千世界,有很多Master,也很多Shape和Cell,但是由于我们看到图纸可能一个模具的设备会有拷贝多个,因此它们公用一个Master,也就是一个Master有多个Shape引用,我们分析文件,就知道里面有一个MasterID,有点像数据库里面的外键一样。

下面是VisioSDK2003中的对象模型图,概括了各个对象之间的关系。

关于拓扑关系

Visio自己的拓扑关系信息很少,除了有一个Connection知道设备的两个连接关系外,信息比较少,如果需要做设备的拓扑图形分析,需要保存他们自己的关系到数据库中,指定一个开始的设备,然后对图形进行分析,如系统中的停电分析、线损分析等,都是在数据库中进行分析,实现的效果还不错,就是会比较麻烦一些。

Visio XML格式文件分析

Master格式

Pages/Shapes格式

Visio的XML文件之Master部分

图纸的XML文档中,Master后面的Shapes集合中只有一个Shape对象

图纸的Shapes集合有多个对象,每个对象的NameU和Name值可能不一样,一般使用NameU

Visio的XML文件之Pages、Shapes

Visio中很多属性都有一个同名+U的属性名称,一般情况下最好使用这个名称如NameU,因此这个是一个唯一的名字,有时候你会发现Name相同,但他们就是不一样,因为他们的NameU名称不一样的。

模具文件 *** 作

本文是综合了所有讲过和未讲过的Visio开发知识,有些地方时前面介绍很少或者带过的,在此做了深层次的分析和介绍,对于Visio开发和探索,国内资料相对比较少,很多是探索性和尝试性的研究,希望本文能够为大家做一定的指引作用。

问题一:请说出数据库对象具体有哪几个? 数据库(database),表(table),视图(view),存储过程(proc),触发器(trigger),索引(index),事务(transaction)

问题二:sql server 2008的数据库对象有哪些 SQL Server数据库对象

SQL Server的数据库一共有11种对象,

包括关系图、

表、视图、存储过程、

用户、角色、规则、默认、用户定义的数据类型、

用户定义的函数、

全文目录。

关于这11种数据库对象,

可以在使用数据库的过程中逐步加深了解。

问题三:数据库中的对象是什么 存在以下对象: 表: 由行和列构成的 ,用来存储数据 数据类型: 定义列或变量的数据类型,SQL Server提供了系统数据类型,并允许用户自定义数据类型 视图 :由表或其他视图导出的虚拟表 索引 :为数据快速检索提供支持且可以保证数据唯一性的辅助数据结构 约束 :用于为表中的列定义完整性的规则 默认值: 为列提供的缺省值 存储过程: 存放于服务器的预先编译好的一组T-SQL语句 触发器: 特殊的存储过程,当用户表中数据改变时,该存储过程被自动执行

问题四:数据库中项目,对象的定义是什么啊?急!!!! 数据库中的对象:

数据库中的表与我们日常生活中使用的表格类似,它也是由行(Row) 和列(Column)组成的。列由同类的信息组成,每列又称为一个字段,每列的标题称为字段名。行包括了若干列信息项。一行数据称为一个或一条记录,它表达有一定意义的信息组合。一个数据库表由一条或多条记录组成,没有记录的表称为空表。每个表中通常都有一个主关键字,用于惟一地确定一条记录。

编辑本段索引

索引是根据指定的数据库表列建立起来的顺序。它提供了快速访问数据的途径,并且可监督表的数据,使其索引所指向的列中的数据不重复。如聚簇索引。

编辑本段视图

视图看上去同表似乎一模一样,具有一组命名的字段和数据项,但它其实是一个虚拟的表,在数据库中并不实际存在。视图是由查询数据库表产生的,它限制了用户能看到和修改的数据。由此可见,视图可以用来控制用户对数据的访问,并能简化数据的显示,即通过视图只显示那些需要的数据信息。

编辑本段图表

图表其实就是数据库表之间的关系示意图。利用它可以编辑表与表之间的关系。

编辑本段缺省值

缺省值是当在表中创建列或插入数据时,对没有指定其具体值的列或列数据项赋予事先设定好的值。

编辑本段规则

规则是对数据库表中数据信息的限制。它限定的是表的列。

编辑本段触发器

触发器由事件来触发,可以查询其他表,而且可以包含复杂的SQL语句。它们主要用于强制服从复杂的业务规则或要求。也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。

编辑本段语法

Create Trigger 触发器名称 on 表名

for ( *** 作)(即insert,update,delete)

as

执行行或者程序块

执行触发器

在对表做相应 *** 做时触发

触发器是一个用户定义的海QL事务命令的 。当对一个表进行插入、更改、删除时,这组命令就会自动执行。

编辑本段存储过程

create proc 存储过程名

参数1 参数类型

as

declare 输出参数 输出参数类型

执行行或者程序块

执行存储过程

exec 存储过程名

存储过程是为完成特定的功能而汇集在一起的一组SQL 程序语句,经编译后存储在数据库中的SQL 程序。

编辑本段用户

所谓用户就是有权限访问数据库的人。

同时需要自己登陆账号和密码。用户分为:管理员用户和普通用户。前者可对数据库进行修改删除,后者只能进行阅读查看等 *** 作。

编辑本段序列

序列定义存储在数据字典中,序列通过提供唯一数值的顺序表用于简化程序设计工作。

问题五:简述access2010数据库包括哪6大对象 表(Table) ――表是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存贮数据库的数据,故又称数据表。

查询(Query)――查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。

窗体(Form)――窗体提供了一种方便的浏览、输入及更改数据的窗口。还可以创建子窗体显示相关联的表的内容。窗体也称表单。

报表(Report)――报表的功能是将数据库中的数据分类汇总,然后打印出来,以便分析。

宏(Macro)――宏相当于DOS中的批处理,用来自动执行一系列 *** 作。Access列出了一些常用的 *** 作供用户选择,使用起来十分方便。

模块(Module)――模块的功能与宏类似,但它定义的 *** 作比宏更精细和复杂,用户可以根据自己的需要编写程序。模块使用Visual Basic编程。

问题六:sql server 2008的数据库对象有哪些 SQL Server数据库对象

SQL Server的数据库一共有11种对象,

包括关系图、

表、视图、存储过程、

用户、角色、规则、默认、用户定义的数据类型、

用户定义的函数、

全文目录。

关于这11种数据库对象,

可以在使用数据库的过程中逐步加深了解。

问题七:数据库中对象有哪些特点 1 数据的结构化

2 数据的共享性

3 数据的独立性

4 数据的完整性

5 数据的灵活性

6 数据的安全性

问题八:面向对象数据库有哪些 baikebaidu/view/682410

这个问法感觉有点怪。你看下面向对像数据库的定义吧!

问题九:对象型数据库是什么?它与面向关系型数据库的区别? 关于面向对象数据库,网上一搜一大堆,我给你简明扼要的说一下。

面向对象数据库就是把数据以对象的形式组织起来,而不是像关系型数据库以表的形式来组织数据,并且根据需要也能提供ACID等事务特点。一开始的设计主要是要方便的配合面向对象编程语言的数据 *** 作需要,渐渐的,成为了一种强大的数据库类型。

主耿区别:面向对象数据库可以处理比关系型数据库更复杂的数据类型以及复合数据类型,并建立相关索引;数据查询时,不需要表格的join *** 作,直接通过指针和索引查找数据;数据之间可以有继承关系;数据库模式和程序类定义模式吻合;等等等等

问题十:数据库包括那些数据对象以及功能 1、表:主要用于存储数据。为了保证数据的准确性,可以设置有效性、掩码等。为了数据安全和准确性期间,一般不建议让用户直接 *** 作表,而是通过窗体来完成录入、删除或者修改等功能。

2、查询 主要用于提取数据。主要包括列举、统计、增减删改数据等功能。数据库的主要功能将由查询来完成,但同样由于上述的原因,一般也是建议通过窗体来完成的。

3、窗体 用户与程序的交互。通过对窗体上控件或菜单的 *** 作,来完成数据的录入、修改和删除等工作。一方面窗体可以增加录入过程的趣味性,另一方面也保护了数据的完整性、准确性和安全性。

4、报表 主要用于展示数据。为了数据的便携,可以通过打印报表把数据展现出来并分发下去。此外,通过格式化,可以更加个性化地设计报表,在加强数据可读性的同时,可以使得报表更加美观。

5、页 主要用于数据共享。出于数据共享的目的,可以把数据库做成页,通过网页的形式分发给未装Access的用户来查看。

6、宏 用于自动化完成。大部分功能是可以通过宏的组合(即宏组)来完成的,例如多步运行的查询,组合成一个宏,而最后只需要执行一次宏即可完成所有查询,从而简化了工作。此外,窗体上大部分控件都是可以通过宏来完成的。在对代码仍不太熟悉的人来说,宏应该算是一个不错的选择。

7、模块 用于自定义函数,或个性化工具。通过对VBA代码的编译,模块可以实现以下几种功能:a、使用自定义公式。用户可以建立自定义公式并运用到查询当中。b、自定义函数。用户可以自定义函数,赋值后被窗体其它控件命令所调用(当然,函数也可以用宏来调用:RunCode)。c、 *** 作其它命令。例如打开注册表写入注册信息、通过Shell函数打开一些文件或者程序。d、美观登录界面。例如建立无边框界面等等

目录

摘要

ABSTRACT

前言

第一章 为什么要开发一个学生档案管理系统?

第二章 计算机已经成为我们学习和工作的得力助手

1.1 在中小学中用计算机管理学生档案的意义

1.2 为将来学校上网做好准备

1.4 学生档案的设计分析

第三章 怎样开发一个学生档案管理系统?

2.1 编程环境的选择

2.2 关系型数据库的实现

2.3 二者的结合(DBA)

第四章 Windows下的Visual Basic 编程环境简介

3.1 告别“hello world”的年代

3.2 面对对象的编程

3.3 实现菜单选项

3.4 实现工具栏

3.5 帮助

3.6关于系统

第五章 使用Access2000 实现关系型数据库

4.1 数据库的概念

4.2 新建一个数据库

4.3 修改已建的数据库

4.4 实现数据库之间的联系

第五章 系统总体规划

5.1 系统功能

5.2 流程图

第六章 系统具体实现

6.1 用户界面的实现

6.1.1 封面

6.1.2 主界面

6.1.3 帮助系统

6.2 数据库的实现

6.2.1 学籍数据库

6.2.2 学生成绩库

6.2.3 课程库

6.3 与VB的连接

第七章 结束语

第八章 主要参考文献

附录

--------------摘要--------------

学生档案管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。

经过分析,我们使用 MICROSOFT公司的 VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁 *** 纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。

关键字:控件、窗体、域。

--------------ABSTRACT--------------

The system of managing student file is a typical application of managing information system (know as MIS),which mainly includes building up data-base of back-end and developing the application interface of front-end The former required consistency and integrality and security of data The later should make the application powerful and easily used

By looking up lots of datum, we selected Visual Basic presented by Microsoft because of its objective tools in Win32 VB offered a series of ActiveX operating a data-base It can give you a short-cut to build up a proto无效 of system application The proto无效 could be modified and developed till users are satisfied with it

Keywords: ActiveX , Form , Field

--------------前言--------------

学生档案管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对学生档案信息进行管理,具有着手工管理所无法比拟的优点例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将以开发一套学生档案管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。

--------------------下面就让我们开始正文的介绍

第一章

为什么要开发一个学生档案管理系统?

计算机已经成为我们学习和工作的得力助手:

今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:

首先,计算机可以代替人工进行许多繁杂的劳动;

其次,计算机可以节省许多资源;

第三,计算机可以大大的提高人们的工作效率;

第四,计算机可以使敏感文档更加安全,等等。

在中小学中用计算机管理学生档案的意义

现在我国的中小学校中档案的管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。

我作为一个计算机应用的本科生,希望可以在这方面有所贡献。改革的总设计师邓小平同志说过“科学技术是第一生产力”,我希望能用我四年的所学编制出一个实用的程序来帮助中小学进行更有效的学籍管理。

归纳起来,好处大约有以下几点:

1. 可以存储历届的学生档案,安全、高效;

2. 只需一到二名档案录入员即可 *** 作系统,节省大量人力;

3. 可以迅速查到所需信息。

为将来学校上网做好准备

跟据1999年中国电信的调查报告显示我国的上网人数已达到890万,互联网已经十分普及,学校往界的毕业生希望能在世界的任何一个角落查到自己校友的信息,本系统为学校将来的上网作了先期工作,比如数据库的建立。

学生档案的设计分析

根据实际情况,我们使用原型法(Rapid Prototyping)即以少量代价快速地构造一个可执行的软件系统模型。使用户和开发人员可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。此时模块也发展成为最终产品了。

第二章

怎样开发一个学生档案管理系统?

编程环境的选择

微软公司的Visual Basic 60是Windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。Visual Basic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。故而,实现本系统VB是一个相对较好的选择。

关系型数据库的实现

Access2000 就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。

二者的结合(DBA)

微软的JET数据库引擎提供了与数据库打交道的途径,我们是通过它以及Visual Basic 来访问数据库并对其进行各种 *** 作。Visual Basic、Access以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。

DATA 控件在数据库中的信息与将信息显示给用户看的Visual Basic程序之间架起了一座桥梁。我们可以设置DATA控件的各个属性,告诉它要调用那个数据库的哪个部分。缺省情况下,DATA控件根据数据库中的一个或多个数据表建立一个dynaset-无效(动态集合)类型的记录集合。一个记录集合是动态的也就意味着,当原来的数据表中的容改变了以后,该记录集合中的记录也会随之改变。DATA控件还提供了用来浏览不同记录的各种跳转按钮。将DATA控件放置在窗体中之后,我们还必须在该控件与要处理的数据库之间建立联系。

第三章

Windows下的Visual

)。 Visual Basic应用程序基本的构建块是用户所创建的对象,每一个对象都具有一些特性和行为(属性、事件和 方法)。开发人员可以最有效利用所创建的每一个对象。使用应用程序具有可通用性可说扩展性和强有力的功能。

Visual Basic应用由一系列对象组成,包括有函数、菜单、函数、结构和数据窗口、用户对象、用户事件等等,对象中又包含若干控件如命令按钮、单行编辑器等这些对象和控件都可在许多应用中重复使用。

实现菜单选项

菜单是程序最重要的特性之一,大多数程序都依赖一个定义良好的菜单使程序易于使用和维护,Visual Basic也提供了强大的创建菜单功能是程序更加标准。

您可以使用Visual Basic的Application Wizard也可以使用Visual Basic 的菜单编辑器建立菜单或者修改已经存在的菜单。

实现工具栏

CoolBar控件与Office97种看到的CoolBar是类似的。CoolBar就是一个可以在窗体上浮动的工具,同时也是其他ActiveX的容器。通过在CoolBar中迁入其他空间你局可以向用户提供更好的灵活性和义用性。

Toolbar 是工具条控件,是实现工具条的主体。其中的按钮可以显示图像和标题,并按功能分组或加入分隔符,还可以围棋设置鼠标停留在其上显示的提示字符。Toolbar也是一个控件容器且具有Style属性,并可以为其增加下拉按钮和平滑按钮等。

选择“工程”下拉菜单中的“部件”选项,显示“部件”对话框。在“控件”选项卡列表中选择“Microsoft Windows Common Controls 60”后工具相中增加改控件。其属性及对象如下:

1. Align属性定义工具条在窗体中的位置

2. ToolTipText属性是字符串类型,定义控件的提示字符

3. Style属性定义按钮外观。

4. ImageList属性定义与数据条对应的ImageList控件名,该控件定义工具条按钮显示的图像。

5. HotImangeList属性设置一个ImageList控件名,该控件定义按钮获得热点时显示的图像。

6. DisabledImageList属性定义工具条按钮无效时显示的图像。

创建工具条包括ImageList和Toolbar控件

ImageList用于为其他控件提供图像库,将ImageList控件加入到工具箱的 *** 作于前述Toolbar控件相同。

帮助

专业水平的软件通常都带有联机帮助功能。无论写出来的程序是要给大量的用户使用,还是仅仅局限于公司内部有限的使用者,我们都应该为用户提供详细的、易于理解的联机帮助文档。微软的Help Workshop40 是一套独立于Visual Basic 的用来协助我们创建、运行于32位Windows *** 作系统下的帮助文件的工具。使用它我们可以为我们编写的应用程序生成一组帮助文件。

关于版本

为了是程序显得更具有专业风格,首先可以在其中加入通常的应用程序信息。这些信息包括公司名称、版本号、修订号以及其他类似信息。Visual Basic允许你使用APP对象来保存这些信息,APP对象是一个预定义对象,不需要在程序中创建它。APP对象的大多数属性被应用程序用来提供常规的信息,通过使用这些APP提供的属性,可以在应用程序和用户之间交流重要信息,在项目属性框中可以设置它的属性。

第四章

使用Access2000 实现关系型数据库

数据库的概念

数据库是一种存储数据并对数据进行 *** 作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,象记录、域等。

新建一个数据库

创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。

1. 标识需要的数据;

2. 收集被标识的字段到表中;

3. 标识主关键字字段;

4. 绘制一个简单的数据图表;

5. 规范数据;

6. 标识指定字段的信息;

7. 创建物理表。

修改已建的数据库

数据库的修改分为:添加、编辑和删除记录。这三种 *** 作均可由Visual Basic 创建的程序来完成,下面的章节将详细描述实现的具体方法。

实现数据库之间的联系

数据库之间的关系指明两个库之间共享一个共同的关键字值。一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。一个更高级的连接形式称为自连接。这种连接是指一个表被连接到它自己的一个字段,或在不同的纪录中由重复数据的组合字段。数据库中有三种不同类型的关键字:主关键字、组合关键字和外关键字。在表中使用的关键字类型用于描述库表示什么以及在数据库中如何与其它的库建立关系。

第五章

系统总体规划

系统功能

1. 可以进行文本 *** 作;

2. 添加一个数据库项目;

3. 删除一个数据库项目;

4. 修改一个数据库项目;

5. 查询信息;

6. 察看课程表。

流程图

第六章

系统具体实现

用户界面的实现

6.1.1 封面

具体实现见 图_611

图_611

6.1.2 主界面

具体实现见图_612

图_612

主界面包含三方面的内容,以下一一介绍:

1记录 *** 作

打开记录 *** 作,进入记录 *** 作菜单项分别由文件、视图及帮助三个选项。

11文件包括:新建

打开

打开写字板---------如图<614> (源程序见附录清单61 )

保存

另存

打印

退出

<图614>

12视图包括:状态条

工具栏

背景颜色

显示

课程表---------如图<615>

文本编辑器

网络浏览

<图615>

1 3帮助包括:内容

关于帮助

2.记录 *** 作

打开记录 *** 作进入记录 *** 作选项页分别由浏览记录、查找等三个选项组成。

2.1浏览记录:

学生学籍库

课程库

成绩库

2.2查找记录

2.3备注

3.系统信息

打开系统信息进入选项页分别由系统信息、信息采集等组成。

6.1.3 帮助系统

具体实现见613

图613

数据库的实现

6.2.1学籍数据库

学籍数据库里存储了学生的档案包括:学号、姓名、年龄等 表如<626>

列名(中文)列名(英文)数据类型宽度小数点位数是否为空姓名Name Date8No学号CodeInteger6No性别SexDate2No年龄AgeDate6No民族NationDate6No政治面貌VisageDate2Yes家庭住址AddressDate10No备注RecordDate15No 表<626>

学籍模块:

该模块主要完成学生基本信息的录入、删除 、更新等功能。在此模块中定义了八个域名来进行学生的信息存储。如果用户修改某一纪录中的某一项,可单添加按钮进行学生记录的编辑,此窗口使用数据窗口的FREEDOM风格(典型的录入界面)。该种风格特点是列标题紧挨着数据列在此窗口还可以增加新学生纪录。

6.2.2成绩数据库

成绩数据库里存储了学生的成绩包括:学号、成绩、等如表<627 >

列名(中文)列名(英文)数据类型宽度小数点位数是否为空姓名Name Date8No学号CodeInteger6No成绩ScoreDate10No备注RecordDate15No 表<627>

成绩模块:

该模块主要完成学生成绩的基本信息的录入、删除 、更新等功能。在此模块中定义了四个域名来进行学生的信息存储。

6.2.3课程数据库

课程数据库利存储了课程的信息:课程名、作者、出版社等如表<628>

列名(中文)列名(英文)数据类型宽度小数点位数是否为空课程IDCourseDate8No课程名NameDate15No出版社PublisherDate20No作者ScoreDate18No备注RecordDate15No 表<628>

课程模块:

该模块主要完成存储课程的所有信息及录入、删除 、更新等功能

与VB的连接

Visual Basic提供了与底层数据库系统紧密的连接。Visual Basic 支持不同的关系数据库管理系统并充分发挥每一个数据库的特长。生成独立应用或脱离服务器运行的服务以上的应用,Visual Basic连接数据库的方式有两种:

·通过使用Visual Basic的 DATA控件。

·通过使用由Visual Basic提供的专用的直接与数据库相连的接口

第七章

结束语

经过三个多月的设计和开发,中小学档案管理系统基本开发完毕。其功能基本符合用户需求,能够完成学生学籍的存储和成绩的查询以及各类相关报表的打印。并提供部分系统维护功能,使用户方便进行数据备份和恢复、数据删除。,对于数据的一致性的问题也通过程序进行了有效的解决。

但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,比如联机文档比较少,用户界面不够美观,出错处理不够等多方面问题。这些都有待进一步改善。

致谢

在本次毕业设计中,我从指导老师雷震甲老师身上学到了很多东西。雷老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。

另外,在系统开发过程中雷老师的助手张彦明老师也给于我很大的帮助,帮助解决了不少的难点,使得系统能及时开发完成,还有同组的同学同样给与我不少帮助,这里一并表示感谢。

第八章

主要参考文献

[1] Visual Basic 60 使用指南

作者:Bob Reselman , Richard Peasley , Wayne Pruchniak

出版社:电子工业出版社

[2] 中文版Microsoft Office 97 自学通

作者:Ned Snell

出版社:机械工业出版社

[3] Visual Basic 60 中文版控件大全

作者:Microsoft

出版社;电子工业出版社

[4] 中文Access 2000 24学时教程

作者:Craig Eddy ,Timothy Buchanan

出版社:机械工业出版社

附录程序清单及注释

程序清单61

Option Explicit

Dim FileName As String '文件名,用于打开、保存文件

Dim UndoString As String '用于 Undo *** 作

Dim UndoNew As String '用于 Undo *** 作

Private Sub ImgUndoDisable()

'禁用“Undo”按钮

UndoString = ""

UndoNew = ""

ImgUndoEnabled = False

ImgUndoPicture = ImageDisableListImages("Undo")Picture

End Sub

Private Sub ImgUndoEnable()

'有效“Undo”按钮

ImgUndoEnabled = True

ImgUndoPicture = ImageUpListImages("Undo")Picture

End Sub

Private Sub Check_ImgPaste()

'设置粘贴按钮

If Len(ClipboardGetText) > 0 Then

ImgPasteEnabled = True

ImgPastePicture = ImageUpListImages("Paste")Picture

Else

ImgPasteEnabled = False

ImgPastePicture = ImageDisableListImages("Paste")Picture

End If

End Sub

Private Sub Check_ImgCutCopy()

'设置剪切、复制按钮

If Text1SelLength > 0 Then

ImgCutEnabled = True

ImgCutPicture = ImageUpListImages("Cut")Picture

ImgCopyEnabled = True

ImgCopyPicture = ImageUpListImages("Copy")Picture

Else

ImgCutEnabled = False

ImgCutPicture = ImageDisableListImages("Cut")Picture

ImgCopyEnabled = False

ImgCopyPicture = ImageDisableListImages("Copy")Picture

End If

End Sub

Private Sub BackColor_Click()

CommonDialog1ShowColor

Text1BackColor = CommonDialog1Color

End Sub

Private Sub Box_Click()

'显停工具栏

If BoxChecked Then

'将停显工具栏

BoxChecked = False

CoolBar1Visible = False

Else

BoxChecked = True

CoolBar1Visible = True

End If

Form_Resize '重新调整控件位置

End Sub

Private Sub Close_Click()

Dim FileNum As Integer

If Len(FileName) > 0 Then

'有输入文件名

FileNum = FreeFile() '获得可用文件号

Open FileName For Output As FileNum '打开输出文件

'如果无指定文件,则创建新文件

Print #FileNum, Text1Text '输出文本

Close FileNum '关闭文件

End If

Text1Text = ""

FileName = ""

End Sub

Private Sub ComboSize_Click()

Text1FontSize = Val(ComboSizeText)

End Sub

Private Sub ComboFont_Click()

Text1FontName = ComboFontText

End Sub

Private Sub Copy_Click()

ClipboardSetText Text1SelText '复制文本到剪裁板

End Sub

Private Sub Cut_Click()

ClipboardSetText Text1SelText '复制文本到剪裁板

Text1SelText = "" '清选择的文本

End Sub

Private Sub DataTime_Click()

Text1SelText = Now

End Sub

Private Sub 删除_Click()

Text1SelText = "" '清选择的文本

End Sub

Private Sub Edit_Click()

'当程序显示“编辑”子菜单前,触发该程序

If Text1SelLength > 0 Then

'文本框中有选中的文本

CutEnabled = True

CopyEnabled = True

删除Enabled = True

Else

CutEnabled = False

CopyEnabled = False

删除Enabled = False

End If

If Len(ClipboardGetText()) > 0 Then

'剪裁板中有文本数据

PasteEnabled = True

Else

'没有可粘贴的文本

PasteEnabled = False

End If

End Sub

Private Sub Exit_Click()

Unload Me

End Sub

Private Sub FindText_KeyPress(KeyAscii As Integer)

Dim BeginPos As Long

If KeyAscii = 13 Then

BeginPos = InStr(1, Text1Text, FindTextText, vbTextCompare)

If BeginPos > 0 Then

Text1SelStart = BeginPos - 1

Text1SelLength = Len(FindTextText)

End If

End If

End Sub

Private Sub Fontcolor_Click()

CommonDialog1ShowColor

Text1ForeColor = CommonDialog1Color

End Sub

Private Sub Form_Load()

Dim i As Integer

'加载图像

ImgNewPicture = ImageUpListImages("New")Picture

ImgOpenPicture = ImageUpListImages("Open")Picture

ImgSavePicture = ImageUpListImages("Save")Picture

ImgUndoPicture = ImageDisableListImages("Undo")Picture

Check_ImgPaste

Check_ImgCutCopy

'加载系统字体

For i = 0 To ScreenFontCount - 1

ComboFontAddItem ScreenFonts(i)

Next i

End Sub

Private Sub Form_Resize()

Dim TextTop As Long

'修改工具条大小

CoolBar1Top = MeScaleTop

MeScaleLeft

Text1Width = MeScaleWidth

If MeScaleHeight > CoolBar1Height Then

Text1Height = MeScaleHeight - TextTop

Else

Text1Height = 0

End If

End Sub

Private Sub ImgCopy_Click()

Copy_Click '复制

Check_ImgPaste

Check_ImgCutCopy

End Sub

Private Sub ImgCopy_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

'“按下”按钮

If Button = 1 Then

ImgCopyPicture = ImageDownListImages("Copy")Picture

End If

End Sub

Private Sub ImgCopy_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1 = "将选择的文本复制到剪裁板"

'判断鼠标位置,显示不同图像

If Button = 1 And (X > 0 And X < ImgNewWidth And Y > 0 And Y < ImgNewHeight) Then

ImgCopyPicture = ImageDownListImages("Copy")Picture

ElseIf Button = 1 Then

ImgCopyPicture = ImageUpListImages("Copy")Picture

End If

End Sub

Private Sub ImgCopy_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

'“抬起”按钮

ImgCopyPicture = ImageUpListImages("Copy")Picture

End If

End Sub

Private Sub ImgCut_Click()

'If Text1SelLength > 0 Then

Cut_Click '剪切

Check_ImgPaste

Check_ImgCutCopy

'End If

End Sub

Private Sub ImgCut_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

'“按下”按钮

ImgCutPicture = ImageDownListImages("Cut")Picture

End If

End Sub

Private Sub ImgCut_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1 = "剪切选择的文字到剪裁板"

'判断鼠标位置,显示不同图像

If Button = 1 And (X > 0 And X < ImgNewWidth And Y > 0 And Y < ImgNewHeight) Then

ImgCutPicture = ImageDownListImages("Cut")Picture

ElseIf Button = 1 Then

ImgCutPicture = ImageUpListImages("Cut")Picture

End If

End Sub

Private Sub ImgCut_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

'“抬起”按钮

ImgCutPicture = ImageUpListImages("C

1、建议你别有用电子版,花十块多钱买本盗版的二级VFP上机一百套就行了,我当时考的上机题就是资料上的第87题。

2、电子版的对答案时不方便,而且网络上有很多错误,买上机题,提醒你要买把试题分类的,并且有提醒讲解的,这样一百套题只要弄懂其中的各个类型就行了,做完一百套很浪费时间的,而且盲目的做,很容易忘也不易理解。

3、笔试你应该学过VFP的吧,如果学过,那只要看看你书本就好了,但是考前一到两个星期,要买本二级公共基础知识,把里面的内容多但几遍,这里面占了笔试的三十分,有时间的话可以买本历年的笔试试题看下就好(笔试很容易过,如果想考优秀,那就要好好看了,有点难度)。

4、考前一定要熟悉上机的环境,即编程软件,避免考试时紧张,导致出错。

愿你顺利通过考试,不用焦急的,很容易过! 相信我的没错,笔试的只要把等级考试配套的资料看两遍就行了,愿你考试顺利

5、重点:

11 数据库基础知识

考点1 计算机数据管理的发展

1数据与数据处理

数据是指存储在某一种媒体上能够识别的物理符号。数据处理的中心问题是数据管理。

2计算机数据管理

(l)人工管理。

(2)文件系统。

(3)数据库系统。

(4)分布式数据库系统。

(5)面向对象数据库系统。

3数据库管理系统

为数据库的建立、使用和维护而配置的软件称为数据库管理系统DBMS (DataBase Management System)。

考点2 数据库系统

1有关数据库的概念

(1)数据库(DataBase):存储在计算机存储设备上、结构化的相关数据的集合。

(2)数据库应用系统(DBAS ):是由系统开发人员利用数据库系统资源开发出来的,面向某一类实际应用的应用软件系统。

(3)数据库管理系统(DBMS):对数据实行专门管理,提供安全性和完整性等统一机制,可以对数据库的建立、使用和维护进行管理。

(4)数据库系统(DBS):是指引进数据库技术后的计算机系统,实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享的便利手段。数据库系统由硬件系统、数据库、数据库管理系统及相关软件、数据库管理员和用户等部分组成。

2数据库系统的特点

(l)实现数据共享,减少数据冗余。

(2)采用特定的数据模型。

(3)具有较高的数据独立性。

(4)具有统一的数据控制功能。

考点3 数据模型

1实体的描述

(1)实体。

(2)实体的属性。

(3)实体集和实体型。

2实体间联系及联系的种类

(1)一对一联系。

(2)一对多联系。

(3)多对多联系。

3数据模型简介

为了反映事物本身及事物之间的各种联系,数据库中的数据必须有一定的结构,这种结构用数据模型来表示,通常有以下3种。

(1)层次数据模型。

(2)网状数据模型。

(3)关系数据模型。

小提示:

数据库DB、数据库系统DBS和数据库管理系统DBMS之间的关系是DBS包括DB和DBMS。

12 关系模型

关系模型的用户界面非常简单,一个关系的逻辑结构就是一张二维表。这种用二维表的形式表示实体和实体间联系的数据模型称为关系数据模型。

1关系术语

(l)关系:一个关系就是一张二维表,每个关系有一个关系名。在Visual FoxPro中一个关系存储为一个文件,扩展名为DBF,称为“表”。

对关系的描述称为关系模式,一个关系模式对应一个关系的结构,格式为:

关系名(属性名1,属性名2,…,属性名n)

(2)元组:在一个二维表中,水平方向的行称为元组,每一行为一个元组。

(3)属性:将二维表中垂直方向的列称为属性,每一列都有一个属性名。

(4)域:属性的取值范围,即不同元组对同一个属性的取值所限定的范围。

(5)关键字:属性或属性的组合,其值能够唯一地标识一个元组。在Visual FoxPro中,主关键字和候选关键字就起唯一标志一个元组的作用。

(6)外部关键字:如果表中一个字段不是本表的主关键字或候选关键字,而是另一个表的主关键字或候选关键字,那么这个字段(属性)就称为外部关键字。

2关系的特点

(1)关系必须规范化。

(2)在同一个关系中不能出现同名属性,Visual FoxPro中表示为字段名的不同。

(3)关系中不允许有完全相同的元组,即冗余。

(4)在一个关系中元组的次序无关紧要。

(5)在一个关系中列的次序无关紧要。

考点5 关系运算

对关系数据库进行查询时,需要找到用户感兴趣的数据,这就需要对关系进行一定的关系运算,关系的基本运算有两类:传统的集合运算和专门的关系运算。

1传统的集合运算

(1)并:两个相同结构关系的并是由属于这两个关系的全部元组组成的集合。

(2)差:两个相同结构关系的差是由属于前一个关系的元组而不属于后一个关系的元组组成的集合。例如,关系R和S的差结果是由属于R但不属于S的元组组成的集合。

(3)交:两个相同结构关系的交是由属于这两个关系所共有的元组组成的集合。

2专门的关系运算

(1)选择:从关系中找出满足给定条件的元组的 *** 作。

(2)投影:从关系模式中指定若干个属性组成新的关系:

(3)连接:关系的横向结合,将两个关系模式拼接成一个更宽的关系模式。

(4)自然连接:在连接运算中,按照字段值对应相等为条件进行的连接 *** 作称为等值连接。自然连接是去掉重复属性的等值连接。

小提示:

选择和投影运算的 *** 作对象只是一个表,相当于对一个二维表进行切割。连接运算则需要把两个表作为 *** 作对象。如果两个表以上进行连接,应当两两进行连接。

13 数据库设计基础

考点6 数据库设计步骤

1设计原则

(l)关系数据库的设计应遵从概念单一化“一事一地”的原则。

(2)避免在表之间出现重复字段。

(3)表中的字段必须是原始数据和基本数据元素。

(4)用外部关键字保证有关联的表之间的联系。

2设计步骤

利用Visual FoxPro来开发数据库应用系统,可以按照以下步骤来设计。

6、SQL重点:

SQL

create table 表名(学号 C(8),,,)

alter table <及其参数> add(增加)\alter(修改)\drop(删除)

alter命令是对表结构的 *** 作,相当于是modi stru

select from where

其它参数:into、between、order by(ASC/DESC)、group by (Having)等

说明: 对于这些参数,一定要能填空,并且理解其含义

insert into

update set

delete from where

Visual Foxpro重点:

第一部分:数据管理系统概述:

1、DBS、DBMS、DB的关系。DBMS是DBS的核心

2、理解数据库的特点

3、三种数据模型

4、关系数据库:关系、元组、属性、关键字,关系模式的描述

5、三种关系运算:选择、投影、连接(要能区分)

select from where

6、完整性控制(理解):实体完整性、域完整性、参照完整性

主健属性不能为空、引用完整性规则:该规则要求不允许引用不存在的元组、

保持数据的一致性

第二部分:VFP初步知识

1、性能指标

2、退出quit

3、扩展名:DBF和FPT,MEM,DBC、DCT和DCX、PJX、PRG和FXP、

IDX和CDX、TXT、SCX

4、工作方式:交互方式、程序方式(other:菜单方式、工具栏方式)

5、向导:工具栏、工具菜单栏、新建都可以使用向导

6、项目管理器的 *** 作(如何添加、修改表单和程序)

第三部分:VFP数据基础

1、常量(判断的唯一标准是定界符)、变量的区分

2、运算符:或^ 、 $ 、% 、==和= set exact on/off

其它set设置命令

set default to \ set exact \ set filter to \set fields to \

set relation to \ set printer to \set deleted to \set device to

3、not -> and -> or

4、函数:

重点掌握:int()、所有的字符处理函数和转换函数、year()

date()、time()、测试函数recno()、reccount()、

type()、IIF()、BOF()、EOF()、FOUND()

第四部分:表的创建和 *** 作

1、字段三要素:字段名、字段类型和字段宽度

2、备注型、通用型知识和如何 *** 作。

3、关闭命令大全:use 、close all 、clear memory、clear all

close database 、close table 、close

4、list/disp [范围][for/while <条件>][fields <字段名表>]

[OFF][to printer/to file <文本文件TXT>]

三大参数:范围、条件、字段名表

注意:书写条件时间,字段名是变量,字段值得是常量(定界符)

例如:性别='男'

list=disp all(disp要分屏显示)

disp=list next 1(next 1为当前记录)

5、命令:go、list structure 、modify structure(添加新字段)

skip、browse、copy、replace、insert、append、

delete、recall、pack、zap、edit/change、过滤(非重点)

6、重要命令:replace、copy to和copy structure to 、

append blank和insert blank

7、scatter和gather、copy to array和append from array

第五部分:查询、统计和索引

1、sort 排序:产生新文件。默认是/a,也可以是/d(降序)

2、索引的分类(主、候选、普通、唯一),理解索引和排序的区别

索引的另一种分类: 单索引和复合索引(熟悉建立方法)

关于降序:

单索引只有数字型才能降序 index on -语文 to xx

其它要降序需要使用 desc 参数,只能在复合索引中完成

结构复合索引的特点: (1)与表同名 (2)随着表的打开而自动打开,但是不生效

3、重点掌握单索引文件,不要求order参数

索引的打开: (1)和表一起打开 (2)先打开表再打开 set index to

(3)建立时就打开并生效

从打开的索引中设置主索引(主控索引) set order to

4、其它:索引更新(重点)、关闭、删除。

5、查询:lodate 和 seek

6、统计:count、sum、average、total、calculate(非重点)

7、多工作区(重点!!!!!) 0号工作区的含义

select、三大命令set rela to 、join with 、updat

第六部分:数据库和视图

1、数据库的概念和基本文件:DBC、DCT、DCX

2、数据库基本命令:打开、修改、关闭、浏览

3、永久关系的建立方法(数据库中表与表之间)

4、理解设置参照完整性

5、视图:虚拟的表(兼有表的功能和查询的功能)。

理解本地视图和远程视图(不要求 *** 作)

第七部分:程序设计。

1、程序基本结构:顺序、分支循环

2、理解算法和流程图

3、程序的编辑、运行。

4、退出程序:return、cancel、quit

5、输入/输出语句

第八部分:面向对象程序设计和表单。

1、对象和类

2、对象的属性、事件和方法

3、类和子类

4、类的特性:继承、封装、多态

5、基类(控件、容器)、子类、用户自定义类(不要求定义)

6、对象的引用:this、thisform、thisformset、parent

7、表单的概念

第九部分:基本控件和属性、事件、方法

一、基本知识

1、重点事件:click、init、gotfocus、lostfocus、interactivechange

2、重点方法:refresh、release、setfocus

表单调用:do form

3、函数:messagebox() additem() 。掌握名字,注意扩号

4、区别是一般控件还是容器类控件

容器类对象的 *** 作方法:鼠标右键点容器:选编辑

主要属性:buttoncount

5、属性修改:引用对象名属性=值

方法的使用:引用对象名方法

事件的选择

二、控件和属性

1、重要:

文本框Label1(value、readonly、passwordchar)

命令按钮Command1(click事件、enabled、caption、visible)

标签label1(caption、font字体相关<字号、字体>)

表单Form1(Init事件、caption、autocenter) 单选按钮组

复选框(buttoncount、value)、命令按钮组、编辑框(属性和文本框一样,不过是多行)

列表框和组合框(兼有编辑框和列表框的功能)(value、Rowsource、RowsourceType)

表格(能用生成器直接生成、修改就行,无需记属性)

4、其次:微调按钮(Increment、SpinnerHighValue、SpinnerlowValue)

图象(picture、Stretch) ActiveX(可以显示通用型字段)

表单集(注意使用thisformset。)

计时器Timer(timer、Enabled、Interval毫秒计算)

5、表单中控件和表的连接:ControlSource属性

6、数据环境和列控件(重点)。

7、如何在数据环境中建立关联。

说明:比较重要、一般和其次的控件无须牢牢记住其属性,因为是上机时

考的可能性比较大。建议你熟悉它,只要在属性工具栏中能找就行

希望对你有所帮助!

本主题概述 WPF 可视化层 本主题重点讲述 WPF 模型中呈现支持的 Visual 类的角色

Visual 对象的角色 Visual 类是每个 FrameworkElement 对象所派生自的基本抽象 该类还充当在 WPF 中编写新控件的入口点 在 Win 应用程序模型中 该类在许多方面可以被视为窗口句柄 (HWND)

Visual 对象是一个核心 WPF 对象 它的主要角色是提供呈现支持 用户界面控件(如 Button 和 TextBox)派生自 Visual 类 并使用该类来保持它们所呈现的数据 Visual 对象为下列功能提供支持

输出显示 呈现 Visual 对象的持久的序列化绘图内容

转换 针对 Visual 对象执行转换

剪辑 为 Visual 对象提供剪辑区域支持

命中测试 确定 Visual 对象的边界内是否包含坐标或几何形状

边界框计算 确定 Visual 对象的边框

但是 Visual 对象不包括对非呈现功能的支持 如 ◆事件处理

◆布局

◆样式

◆数据绑定

◆全球化

Visual 作为子类必须派生自的公共抽象类进行公开 下图显示了 WPF 中所公开的可视化对象的层次结构

Visual 类的层次结构

DrawingVisual 类DrawingVisual 是一个用于呈现形状 图像或文本的轻量绘图类 此类之所以被视为轻量 是因为它不提供布局或事件处理功能 从而能够改善运行时性能 因此 绘图最适于背景和剪贴画 DrawingVisual 可用于创建自定义可视化对象

Viewport DVisual 类Viewport DVisual 在二维 Visual 和 Visual D 对象之间起到桥梁作用 Visual D 类是所有三维可视化元素的基类 Viewport DVisual 要求您定义一个 Camera 值和一个 Viewport 值 可以借助照相机来查看场景 投影映射到二维图面的区域称作视区

ContainerVisual 类ContainerVisual 类用作 Visual 对象集的容器 DrawingVisual 类派生自 ContainerVisual 类 这允许它包含可视化对象的集合

可视化对象中的绘图内容Visual 对象将它的呈现数据另存为向量图形指令列表 指令列表中的每一项都以序列化格式表示一组低级别的图形数据及其相关资源 共有四种不同类型的呈现数据可以包含绘图内容

通过 DrawingContext 您可用可视化内容填充 Visual 当您使用 DrawingContext 对象的绘图命令时 实际上是存储一组日后将由图形系统使用的呈现数据 而不是实时绘制到屏幕上

当您创建 WPF 控件(如 Button)时 该控件会为绘图对象本身隐式生成呈现数据 例如 设置 Button 的 Content 属性会导致该控件存储标志符号的呈现表示

Visual 将其内容描述为一个或多个包含在 DrawingGroup 中的 Drawing 对象 DrawingGroup 还描述不透明蒙板 转换 位图效果和应用于其内容的其他 *** 作 呈现内容时 DrawingGroup *** 作按如下顺序应用 OpacityMask Opacity BitmapEffect ClipGeometry GuidelineSet 和 Transform

下图显示了在呈现过程中 DrawingGroup *** 作的应用顺序

DrawingGroup *** 作的顺序

在可视化层绘制内容绝不能直接实例化 DrawingContext 但可以通过某些方法

(例如 DrawingGroup :: Open 和 DrawingVisual :: RenderOpen)获取绘图上下文 下面的示例从 DrawingVisual 中检索 DrawingContext 并将其用于绘制矩形

在可视化层枚举绘图内容此外 Drawing 对象还可提供用来枚举 Visual 内容的对象模型

说明 您在枚举可视化层的内容时 就是相当于在检索 Drawing 对象 而不是以向量图形指令列表形式检索呈现数据的基础表示 下面的示例使用 GetDrawing 方法来检索 Visual 的 DrawingGroup 值并枚举该值

如何使用可视化对象来生成控件 WPF 中的许多对象都由其他可视化对象组成 这意味着它们可以包含子代对象的各种层次结构 WPF 中的许多用户界面元素(如控件)都由多个表示不同类型呈现元素的可视化对象组成 例如 Button 控件可以包含许多其他对象 其中包括 ClassicBorderDecorator ContentPresenter 和 TextBlock

下面的代码显示的是在标记中定义的 Button 控件

如果您要枚举包含默认 Button 控件的可视化对象 则将发现如下所示的可视化对象层次结构

可视化树层次结构的关系图

Button 控件包含一个 ClassicBorderDecorator 元素 该元素又包含一个 ContentPresenter 元素 ClassicBorderDecorator 元素负责为 Button 绘制边框和背景 ContentPresenter 元素负责显示 Button 的内容 在本例中 由于您要显示文本 因此 ContentPresenter 元素中包含一个 TextBlock 元素 Button 控件使用 ContentPresenter 这意味着该控件的内容可以由其他元素(如 Image)或几何形状(如 EllipseGeometry)来表示

控件模板将控件扩展为控件层次结构的关键在于 ControlTemplate 控件模板为控件指定默认的可视化层次结构 当您显式引用某个控件时 会隐式引用它的可视化层次结构 您可以重写控件模板的默认值 以便为控件创建自定义的可视化外观 例如 您可以修改 Button 控件的背景颜色值 以便它使用线性渐变颜色值 而不使用纯色值

用户界面元素(如 Button 控件)包含几个向量图形指令列表 这些列表描述控件的全部呈现定义 下面的代码显示的是在标记中定义的 Button 控件

如果您要枚举包含 Button 控件的可视化对象和向量图形指令列表

则将发现如下所示的可视化对象层次结构

可视化树和呈现数据的关系图

Button 控件包含一个 ClassicBorderDecorator 元素 该元素又包含一个 ContentPresenter 元素 ClassicBorderDecorator 元素负责绘制所有构成按钮边框和背景的离散图形元素 ContentPresenter 元素负责显示 Button 的内容 在本例中 由于您要显示图像 因此 ContentPresenter 元素中包含一个 Image 元素

对于可视化对象和向量图形指令列表的层次结构 需要注意多个事项

该层次结构中的排序表示绘图信息的呈现顺序 从可视化元素的根 按照从左到右 从上到下的顺序遍历子元素 如果某个元素有可视化子元素 则会先遍历该元素的子元素 然后再遍历该元素的同级

层次结构中的非叶节点元素(如 ContentPresenter)用于包含子元素 它们并不包含指令列表

如果可视化元素既包含向量图形指令列表又包含可视化子级 则会先呈现父级可视化元素中的指令列表 然后再呈现任何可视化子对象中的绘图

向量图形指令列表中的项按照从左到右的顺序呈现

可视化树 可视化树中包含某个应用程序的用户界面所使用的所有可视化元素 由于可视化元素中包含持久的绘图信息 因此您可以将可视化树视为场景图 其中包含将输出写入显示设备所必需的全部呈现信息 该树汇集了由该应用程序在代码或标记中直接创建的所有可视化元素 该可视化树还包含由元素(如控件和数据对象)的模板扩展功能创建的所有可视化元素

下面的代码显示的是在标记中定义的 StackPanel 元素

如果您要枚举包含标记示例中 StackPanel 元素的可视化对象 将发现如下所示可视化对象的层次结构

可视化树层次结构的关系图

  呈现顺序通过可视化树 可以确定 WPF 可视化对象和绘图对象的呈现顺序 将从位于可视化树中最顶层节点中的可视化元素根开始遍历 然后将按照从左到右的顺序遍历可视化元素根的子级 如果某个可视化元素有子级 则将先遍历该可视化元素的子级 然后再遍历其同级 这意味着子可视化元素的内容先于该可视化元素本身的内容而呈现

可视化树呈现顺序的关系图

  可视化元素根可视化元素根是可视化树层次结构中最顶层的元素 在大多数应用程序中 可视化元素根的基类是 Window 或 NavigationWindow 但是 如果您在 Win 应用程序中承载可视化对象 则可视化元素根将是在 Win 窗口中承载的最顶层的可视化元素

与逻辑树的关系WPF 中的逻辑树表示应用程序在运行时的元素 尽管您不直接 *** 作该树 但是该应用程序视图对于了解属性继承和事件路由非常有用 与可视化树不同 逻辑树可以表示非可视化数据对象(如 ListItem) 在许多情况下 逻辑树密切映射到应用程序的标记定义 下面的代码显示的是在标记中定义的 DockPanel 元素

如果您要枚举包含标记示例中 DockPanel 元素的逻辑对象 则将发现如下所示逻辑对象的层次结构

逻辑树的关系图

可视化树和逻辑树与当前的应用程序元素集合同步 并反映对元素进行的任何添加 删除或修改 但是 这些树表示不同的应用程序视图 与可视化树不同 逻辑树不展开控件的 ContentPresenter 元素 这意味着同一组对象的逻辑树和可视化树之间没有直接的一对一对应关系 实际上 在将同一个元素用作参数的情况下 调用 LogicalTreeHelper 对象的 GetChildren 方法与调用 VisualTreeHelper 对象的 GetChild 方法会生成不同的结果

使用 XamlPad 查看可视化树WPF 工具 (XamlPad) 提供了一个用来查看和浏览可视化树的选项 该树与当前所定义的 XAML 内容相对应 单击菜单栏上的 显示可视化树 [Show Visual Tree]按钮可显示相应的可视化树

下面将说明如何在 XamlPad 的 可视化树资源管理器 [Visual Tree Explorer]面板中将 XAML 内容扩展为可视化树节点

XamlPad 中的 可视化树资源管理器 [Visual Tree Explorer]面板

请注意 Label TextBox 和 Button 控件在 XamlPad 的 可视化树资源管理器 [Visual Tree Explorer]面板中各自显示一个可视化对象层次结构 这是由于 WPF 控件具有一个包含其可视化树的 ControlTemplate 当您显式引用某个控件时 会隐式引用它的可视化层次结构

分析可视化性能WPF 提供了一套性能分析工具 来帮助您分析应用程序的运行时行为 并确定可以应用的性能优化的类型 可视化探查器工具通过直接映射到应用程序的可视化树来为性能数据提供一个丰富的图形视图 在此屏幕快照中 可视化探查器的 CPU Usage [CPU 使用率]部分使您可以清楚地了解对象对 WPF 服务(如呈现和布局)的使用情况

可视化探查器显示输出

可视化对象的呈现行为 WPF 引进了几个影响可视化对象呈现行为的功能 保留的模式图形 矢量图形和与设备无关的图形

保留的模式图形了解即时模式和保留模式图形系统之间的区别是了解 Visual 对象角色的要点之一 基于 GDI 或 GDI+ 的标准 Win 应用程序使用即时模式图形系统 这意味着应用程序负责重新绘制工作区中由于某项 *** 作(如调整窗口大小)或者对象的可视化外观发生变化而失效的部分

Win 呈现顺序的关系图

与之相比 WPF 使用保留模式系统 这意味着具有可视化外观的应用程序对象定义一组序列化绘图数据 在定义了绘图数据之后 系统会响应所有的重新绘制请求来呈现应用程序对象 甚至在运行时 您也可以修改或创建应用程序对象 并仍旧依赖系统响应绘制请求 保留模式图形系统中有一个强大功能 那就是绘图信息总是由应用程序保持为序列化状态 但是呈现功能仍由系统负责 下面的关系图演示应用程序如何依赖 WPF 来响应绘制请求

WPF 呈现顺序的关系图

智能重绘使用保留模型图形的最大好处之一就是 WPF 可以高效率地优化需要在应用程序中重绘的内容 即使您有一个具有各种不透明度的复杂场景 通常也不必编写特殊用途的代码来优化重绘功能 请将智能重绘功能与 Win 编程进行比较 在后者中 可以通过最小化更新区域中的重绘量来尽力优化应用程序

向量图形WPF 使用向量图形作为其呈现数据的格式 向量图形(包括可缩放的向量图形 (SVG) Windows 元文件 ( wmf) 和 TrueType 字体)存储呈现数据 并以指令列表的形式传输该呈现数据 这些指令描述如何使用图形基元来重新创建图像 例如 TrueType 字体是描述一组直线 曲线和命令(而不是像素数组)的矢量字 矢量图形的主要好处之一就是能够伸缩到任何大小和分辨率

与矢量图形不同 位图图形以图像的逐像素表示形式来存储呈现数据 而且在特定的分辨率下预先呈现 位图图形格式和矢量图形格式的主要区别之一就是对原始图像的保真度 例如 当某个源图像的大小发生变化时 位图图形系统会拉伸该图像 而向量图形系统会伸缩该图像 从而保持图像的保真度

下图显示了源图像在放大到 倍时的情况 请注意 当源图像作为位图图形拉伸时会发生失真 而当源图像作为矢量图形伸缩时 则不会发生失真

光栅图形和矢量图形之间的区别

下面的标记显示所定义的两个 Path 元素 第二个元素使用 ScaleTransform 将第一个元素的绘图指令放大到 倍 请注意 Path 元素中的绘图指令保持不变

关于分辨率和与设备无关的图形可通过以下两个系统因子来确定屏幕上的文本大小和图形大小 分辨率和 DPI 分辨率描述出现在屏幕上的像素数量 由于分辨率变大 因此像素会变小 从而导致所显示的图形和文本会变小 在将显示器的分辨率从 x 更改为 x 时 显示器上所显示的图形会小得多

另一个系统设置 (DPI) 以像素数来描述屏幕英寸的大小 大多数 Windows 系统的 DPI 都为 这意味着一屏幕英寸等于 个像素 增加 DPI 设置会使屏幕英寸变大 减小 DPI 会使屏幕英寸变小 这意味着屏幕英寸与实际的英寸不相等 在多数系统上 二者很有可能不相等 当您增加 DPI 时 屏幕英寸会变大 因此支持 DPI 的图形和文本也会变大 增加 DPI 可能会增强文本的可读性 在高分辨率下尤其如此

并非所有的应用程序都支持 DPI 一些应用程序将硬件像素作为其主要计量单位 更改系统 DPI 不会对这些应用程序产生任何影响 许多其他应用程序都使用支持 DPI 的单位来描述字号 使用像素来描述任何其他内容 DPI 太小或太大都可能会导致这些应用程序出现布局问题 因为应用程序的文本会随着系统的 DPI 设置而伸缩 而应用程序的 UI 却不会出现此类问题 对于使用 WPF 开发的应用程序 此问题已经消除

WPF 支持通过将与设备无关的像素(而不是硬件像素)用作其主要计量单位来自动伸缩 图像和文本会适当伸缩 而无需应用程序开发人员执行任何额外的工作 下图显示了 WPF 文本和图形在不同 DPI 设置下的显示方式的示例

不同 DPI 设置下的图形和文本

 VisualTreeHelper 类 VisualTreeHelper 类是一个静态帮助器类 它提供了一个要在可视化对象级别编程的低级功能 该类在非常特殊的方案(如开发高性能自定义控件)中非常有用

在大多数情况下 更高级的 WPF 框架对象(如 Canvas 和 TextBlock)提供更大的灵活性且更易于使用

命中测试VisualTreeHelper 类提供了当默认的命中测试支持无法满足您的需要时 针对可视化对象的命中测试方法 可以在 VisualTreeHelper 类中使用 HitTest 方法来确定几何形状或点坐标值是否位于给定对象(如控件或图形元素)的边界内 例如 您可以使用命中测试来确定鼠标在对象边框中的单击点是否落在圆形几何形状内部 您还可以选择重写对命中测试的默认实现来执行自己的自定义命中测试计算

枚举可视化树VisualTreeHelper 类提供了用来枚举可视化树成员的功能 若要检索父级 请调用 GetParent 方法 若要检索可视化对象的子级或直接子代 请调用 GetChild 方法 此方法返回父级在指定索引处的子 Visual

下面的示例演示如何枚举一个可视化对象的所有子代 如果您对序列化可视化对象层次结构的所有呈现信息感兴趣 则可能希望使用该技术

在大多数情况下 逻辑树更能表示 WPF 应用程序中的元素 尽管您不直接修改逻辑树 但是该应用程序视图对于了解属性继承和事件路由非常有用 与可视化树不同 逻辑树可以表示非可视化数据对象(如 ListItem) VisualTreeHelper 类提供用来返回可视化对象边框的方法 可以通过调用 GetContentBounds 来返回可视化对象的边框 可以通过调用 GetDescendantBounds 来返回可视化对象及其所有子代的边框 下面的代码演示如何计算可视化对象及其所有子代的边框

lishixinzhi/Article/program/net/201311/11370

1、首先点击打开主菜单栏中的“外接程序”选项。

2、然后在d出来的窗口中点击打开“可视化数据管理器”,出现下图中的界面。

3、然后单击文件中的新建,选择“microsot access”,“version 70”,d出保存界面,点击保存后出现如下界面。

4、然后右键单击properties,选择“新建表”,输入表名称,添加字段。

5、然后打开类型,选择字段类型的大小,回车确定。

6、然后点击“生成表”选项。

7、然后双击“1”或者右键单击选择打开。

8、然后输入值后工具栏会变化。

9、然后点击添加就完成了。

以上就是关于access数据库表间关系该怎么设置使得可以互相更改全部的内容,包括:access数据库表间关系该怎么设置使得可以互相更改、c#中如何添加Visio Drawing Control 控件、数据库对象有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9773223.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存