C# datagridview 使用.docx

上传人:b****1 文档编号:2388042 上传时间:2023-05-03 格式:DOCX 页数:53 大小:375.89KB
下载 相关 举报
C# datagridview 使用.docx_第1页
第1页 / 共53页
C# datagridview 使用.docx_第2页
第2页 / 共53页
C# datagridview 使用.docx_第3页
第3页 / 共53页
C# datagridview 使用.docx_第4页
第4页 / 共53页
C# datagridview 使用.docx_第5页
第5页 / 共53页
C# datagridview 使用.docx_第6页
第6页 / 共53页
C# datagridview 使用.docx_第7页
第7页 / 共53页
C# datagridview 使用.docx_第8页
第8页 / 共53页
C# datagridview 使用.docx_第9页
第9页 / 共53页
C# datagridview 使用.docx_第10页
第10页 / 共53页
C# datagridview 使用.docx_第11页
第11页 / 共53页
C# datagridview 使用.docx_第12页
第12页 / 共53页
C# datagridview 使用.docx_第13页
第13页 / 共53页
C# datagridview 使用.docx_第14页
第14页 / 共53页
C# datagridview 使用.docx_第15页
第15页 / 共53页
C# datagridview 使用.docx_第16页
第16页 / 共53页
C# datagridview 使用.docx_第17页
第17页 / 共53页
C# datagridview 使用.docx_第18页
第18页 / 共53页
C# datagridview 使用.docx_第19页
第19页 / 共53页
C# datagridview 使用.docx_第20页
第20页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C# datagridview 使用.docx

《C# datagridview 使用.docx》由会员分享,可在线阅读,更多相关《C# datagridview 使用.docx(53页珍藏版)》请在冰点文库上搜索。

C# datagridview 使用.docx

C#datagridview使用

项目十数据管理

面向数据库编程始终是程序设计的一个难点和重点,对于大量的数据,使用数据库来存储管理将比通过文件来存储管理有更高的效率。

VB.NET程序设计语言自身是不具备对数据库进行操作的功能,它对数据库的处理是通过.Net环境中面向数据库编程的类库和微软的MDAC(MicrosoftDataAccessComponents)来实现的。

先介绍几个基本概念。

以一定的方式组织并存储在一起的相互关联的数据的集合称为数据库(DataBase,简称DB)。

对数据库的管理是由数据管理系统(DataBaseManagementSystme,DBMS)来实现,它是用户与数据库之间的接口,它提供了对数据库使用和处理的基本操作。

本章主要探讨用VB.NET进行数据库的基础编程技术,即:

用VB.NET如何实现对数据的浏览,如何添加、插入记录,如何删除记录和如何更改记录。

VB.NET可以处理许多外部数据库(由其它数据库软件建立的数据库),如Access、FoxPro、Dbase、Excel、SQLServer、Oracle等数据库。

本章处理的数据库是Access数据库。

活动一数据浏览

活动说明

现有某人的名片数据库cards.mdb中有一记录朋友信息的数据表friends,包括编号、姓名、公司、职务、公司地址、电话、手机、E-mail,要求在VB.NET2005环境下能按图9-1-1窗体显示的格式来浏览查询朋友信息。

要求能使用命令按钮来实现记录的向前、向后移动,文本框只用于浏览数据,不允许修改。

 

图9-1-1朋友信息浏览界面

进一步,如图9-1-2所示,要求根据输入不同的职务,能通过DataGridView控件显示所在这个单位的所有朋友的信息。

若不输入“职务”,则显示所有客户。

图9-1-2朋友信息查询界面

活动分析

在VB.NET中,数据控件本身不能直接显示数据库记录集中的数据,而必须通过能与数据控件绑定的控件来实现。

首先由BindingSource数据控件指定数据源,再将各个文本框和DataGridView控件都绑定到数据控件BindingSource1上,运行时各个绑定控件就能够及时显示数据库的记录。

最后在窗体上增加4个命令按钮,通过对4个命令按钮的编程实现记录的浏览。

通过SQL语句改变数据控件BindingSource1的FriendsBindingSource的值,使DataGridView控件显示相应的查询记录。

提示:

要是数据绑定控件能够显示数据库记录集中的数据,必须在设计时或运行时设置数据绑定控件的DataBindings属性,才可以显示数据库中的记录。

编程实现

一、界面设计

设计界面分别如图9-1-1、图9-1-2所示添加各个控件,并按照下面进行属性设置。

1.在BindingSource1控件属性中:

将DataSource属性中选择“添加数据源”,然后选择“数据库”,单击“下一步”,选择“新建连接”,如图9-1-3所示。

将数据库设置为cards.mdb。

图9-1-3建立数据库的连接界面

2.将六个文本框的DataBindings属性中的Text设置为FriendsBindingSource中相应的字段名。

ReadOnly属性设置为True。

3.在DataGridView控件属性中:

将Datasource设置为FriendsBindingSource。

将RowHeadersVisible设置为False,表示不显示左侧的行标题列。

4.其他控件的属性均按图示设置。

二、事件过程代码

1.“首记录”按钮程序代码

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click

'首记录

FriendsBindingSource.MoveFirst()

EndSub

2.“上一条”按钮程序代码

PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click

'上一条,向上移动记录指针

FriendsBindingSource.MovePrevious()

EndSub

3.“下一条”按钮程序代码

PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click

'下一条,向下移动记录指针

FriendsBindingSource.MoveNext()

EndSub

4.“末记录”按钮程序代码

PrivateSubButton4_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton4.Click

'末记录

FriendsBindingSource.MoveLast()

EndSub

5.“查询”按钮程序代码

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click

Dimstrsql

objConn.Open()

objDSet.Clear()'清除原数据集记录

IfTrim(TextBox1.Text)=""Then

strsql="select*fromfriends"

Else

strsql="select*fromfriendswhere职务='"&TextBox1.Text&"'"

EndIf

DimobjAdapAsNewOleDbDataAdapter(strsql,objConn)

objConn.Close()

objAdap.Fill(objDSet,"friends")

DataGridView1.DataSource=objDSet.Tables("friends")

EndSub

拓展:

用DataGridView属性窗口上的“编辑列”“添加列”,对显示的记录信息进行设置。

学习支持

一、数据库的基本概念

按数据的组织方式不同,数据库可分为三种类型:

网状数据库、层次数据库和关系数据库。

其中,关系数据库是目前应用最多的数据库。

在关系数据库中,将数据存储在一些二维表中,然后可以通过建立各个表之间的关系来定义数据库的结构。

(1)表

将相关的数据按行和列的形式组织成的二维表格即为表。

如表9-1-1所示就是一个用于描述“”这一实体的若干信息的表。

表9-1-1学生信息表

班级

学号

姓名

性别

出生日期

家庭住址

J200000101

20000101001

张少华

1982/5/2

中山南二路900号

J200000102

20000101002

李海涛

1982/6/7

黄山路123号

J200000201

20000201001

王莹

1982/8/30

广西路59号

J200000202

20000202001

赵文文

1981/11/2

凤阳路145号

J200000301

20000301001

曹磊

1981/10/29

四川路555号

J200000302

20000301002

林玲

1982/5/30

山东路1000号

J200000401

20000401001

金子

1982/6/6

新华南路333号

J200000401

20000401002

谭国庆

1981/12/20

江苏北路444号

J200000402

20000402001

成铭和

1982/10/28

宁夏路788号

S2*******1

20000501001

庄小丽

1982/8/10

黄河路111号

J200000502

20000501002

陆国华

1982/2/13

高科路458号

X200000701

20000701001

沈荣

1981/11/23

北城路500号

X200000701

20000701002

顾佳佳

1982/4/26

河南中路410号

X200000601

X0000601001

马黎丽

1982/5/6

天山路999号

X200000601

X0000601002

朱晓菲

1982/8/18

华山路123号

表9-1-2专业表

专业代码

系部代码

专业名称

001

001

电子工程

002

001

微电子学

003

002

英语

004

002

德语

005

002

法语

006

003

广播电视学

007

003

广告学

表9-1-3系部表

系部代码

系部名称

001

信息科学与工程系

002

外文系

003

新闻系

 

一个数据库中可以有一个或多个表,各表之间存在着某种关系。

如“专业”表与“系部”表可以通过“系部代码”建立每个专业与各个系部之间的关系,见表9-1-2与表9-1-3。

数据库也有自己的名称,如可以将包含以上三个表的数据库称为“学生信息管理”数据库。

(2)表的结构

每个表由多行和多列组成,表中的每一行称为记录,如“专业”表中的每个专业的信息就是一个记录,同一个表中不应有相同的记录。

表中的每一列称为一个字段,每个字段有一个字段名,如“专业”表中共有3列,即3个字段,字段名依次是:

专业代码、系部代码、专业名称。

每个字段具有相同的数据类型,记录中的某字段值称为数据项。

拓展:

在一个表中,记录的顺序和字段顺序不影响表中的数据信息。

字段名称、字段类型、字段长度等要素构成了表的结构。

表9-1-4描述了“学生信息管理”数据库中各表的结构。

表9-1-4“学生信息管理”数据库中各表的结构

表名

字段名

字段类型

字段长度

学生信息

专业代码

文本

4

班级

文本

30

学号

文本

12

姓名

文本

10

性别

文本

2

出生日期

日期/时间

默认

家庭住址

文本

50

系部

系部代码

文本

4

系部名称

文本

20

专业

专业代码

文本

4

系部代码

文本

4

专业名称

文本

30

(3)表中的关键字

如果表中的某个字段或多个字段组合能唯一地确定一个记录,则称该字段或多个字段组合为候选关键字。

如“学生信息”表中的“学号”可以作为候选关键字,因为对于每个学生来说,学号是唯一的。

一个数据表中可以有多个候选关键字,但只能确定一个候选关键字作为主关键字。

提示:

主关键字必须具有一个唯一的值,且不能为空值。

(4)表间的关联

表与表之间的关系是按照某一个公共字段来建立的一个表中记录同另一个表中记录之间的关系,如“学生信息”表与“专业”表之间就可以通过“专业代码”这个公共字段建立关系。

表间的关系分为一对一、一对多(多对一)、多对多关系。

常用的是一对多(或多对一)关系,例如,对于“专业”表中的每一个专业代码,在“学生信息”表中都有多条记录具有相同的专业代码。

(5)外关键字(ForeignKey)

如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外关键字。

由此可见,外关键字表示了两个关系之间的联系。

以另一个关系的外关键字做主关键字的表被称为主表,具有此外关键字的表被称为主表的从表。

外关键字又称作外键。

在“专业”表中,“专业代码”是主键,在“学生信息”表中也有“专业代码”字段,因此“专业表”是主表,“学生信息”表是从表,字段“专业代码”就是主表的外键。

(6)索引

索引提供了一个针对表中特定列的数据的指针,是以特定的顺序记录在一个索引文件上。

查找数据时,数据库管理系统先从索引文件上找到信息的位置,再根据指针从表中读取数据。

每个索引都必须有一个名称,且由一个索引表达式来确定索引的顺序,索引表达式即可以是一个字段,也可以是多个字段的组合。

在一个表中可以建立多个索引,但只能有一个主索引,主索引的索引字段在整个表中不允许出现重复。

例如,要按学生的学号快速检索,就要在“学生信息”表中以“学号”为索引字段建立一个索引,并为其取个名字。

提示:

只有当被所有的字段中的数据经常被查询时,才需要对表创建索引。

索引将占用磁盘空间,并降低添加、删除和更新记录的速度。

二、数据源控件(BindingSource)

1.“数据源”控件的主要功能就是连接到数据源、建立和执行针对这些数据源的命令以及将这些命令的结果检索和绑定到页上的元素。

另外,“数据源”控件还对用户当前正在操作的记录进行跟踪。

“数据源”控件是一个ActiveX®控件,在运行时没有任何可见的界面。

用户可以直接在控件工具箱的数据标签中找到数据控件BindingSource(

)。

它是VB.NET内部控件之一,它可以通过数据库引擎MicrosoftJet访问Access、Foxpro等数据库,还可以访问ODBC数据源。

BindingSource控件充当数据绑定控件和数据源之间的中介。

它提供了一个通用接口,其中包含控件绑定到数据源时所需的所有功能。

使用向导将控件绑定到数据源时,实际上创建并配置了一个BindingSource控件实例,并绑定到该实例。

利用此控件可以写少量的代码就能实现对数据库的数据进行查询、添加、删除、更新等一系列基本操作,如图9-1-4所示。

图9-1-4BindingSource与数据库的连接原理图

2.数据源控件的主要属性、事件和方法

如果创建了一个新的Windows窗体程序,并在主窗口Form1中添加了一个BindingSource控件,配置BindingSource实例的第一步是设置其DataSource属性。

这可以是几种数据源中的任何一种,包括自己创建的数据源,但通常是类型化数据集。

使用属性窗口,可以绑定到项目中类型化数据集。

BindingSource控件中常用的属性、事件、方法参见表9-1-5、表9-1-6和表9-1-7所示。

表9-1-5BindingSource控件常用属性列表

属性

说明

AllowEdit

指示是否可以编辑BindingSource控件中的记录。

AllowNew

指示是否可以使用AddNew方法向BindingSource控件添加记录

AllowRemove

指示是否可从BindingSource控件中删除记录。

Count

获取BindingSource控件中的记录数。

CurrencyManager

获取与BindingSource控件关联的当前记录管理器。

Current

获取BindingSource控件中的当前记录

DataMember

获取或设置连接器当前绑定到的数据源中的特定数据列表或数据库表。

DataSource

获取或设置连接器绑定到的数据源。

Filter

获取或设置用于筛选的表达式。

Item

获取或设置指定索引的记录。

Sort

获取或设置用于排序的列名来指定排序。

表9-1-6BindingSource控件常用事件列表

名称

说明

AddingNew

在将项添加到基础列表之前发生。

CurrentChanged

在当前绑定项更改时发生。

CurrentItemChanged

在Current属性的属性值更改后发生。

DataMemberChanged

在DataMember属性值更改后发生。

DataSourceChanged

在DataSource属性值更改后发生。

ListChanged

当基础列表更改或列表中的项更改时发生。

PositionChanged

在Position属性的值更改后发生。

表9-1-7BindingSource控件常用方法列表

名称

说明

Add

将现有项添加到内部列表中。

AddNew

向基础列表添加新项。

CancelEdit

取消当前编辑操作。

Clear

从列表中移除所有元素。

EndEdit

将挂起的更改应用于基础数据源。

Insert

将一项插入列表中指定的索引处。

MoveFirst

移至列表中的第一项。

MoveLast

移至列表中的最后一项。

MoveNext

移至列表中的下一项。

MovePrevious

移至列表中的上一项。

Remove

从列表中移除指定的项。

RemoveAt

移除此列表中指定索引处的项。

RemoveCurrent

从列表中移除当前项。

三、数据绑定控件(DataGridView)

利用数据源控件可以实现对数据库的访问,然而数据源控件本身并不能直接显示记录集中的数据,必须通过与它绑定的控件来实现。

在VB.NET中,可以和数据源控件绑定的有文本框、标签、列表框、组合框等内部控件。

利用标准数据绑定控件显示记录集信息,一般通过设置绑定控件DataSource属性来实现绑定。

并通过窗体上的DataGridView1的任务窗口设置显示的数据列。

如图9-1-6所示。

图9-1-5DataGridView数据绑定的设置

或者代码实现如下:

DimdsAsDataSet=GetDataSet()

DataGridView1.DataSource=ds.Tables("Customers")

DataGridView一次只能显示一个表。

如果绑定整个DataSet,则不会显示任何数据,除非您使用要显示的表名设置了DataMember属

性。

DataGridView显示遵循以下几项简单的规则:

●为数据源中的每个字段创建一列。

●使用字段名称创建列标题。

列标题是固定的,这意味着用户在列表中向下移动时列标题不会滚动出视图。

●支持WindowsXP视觉样式。

您会注意到列标题具有新式的平面外观,并且当用户将鼠标移到其上时会突出显示。

DataGridView还包括几个您可能不会立即注意到的默认行为:

●允许就地编辑。

用户可以在单元格中双击或按F2来修改当前值。

唯一的例外是将DataColumn.ReadOnly设置为True的字段

●支持自动排序。

用户可以在列标题中单击一次或两次,基于该字段中的值按升序或降序对值进行排序。

默认情况下,排序时会考虑数据类型并

●按字母或数字顺序进行排序。

字母顺序区分大小写。

●允许不同类型的选择。

用户可以通过单击并拖动来突出显示一个单元格、多个单元格或多个行。

单击DataGridView左上角的方块可以选择整个表。

●支持自动调整大小功能。

用户可以在标题之间的列分隔符上双击,使左边的列自动按照单元格的内容展开或收缩。

实践活动

要求在本项目活动一的基础上增加4个按钮:

新增、删除、修改和放弃,如图9-1-5所示,通过对4个按钮的编程建立增删改的功能。

根据按钮提示文字调用AddNew方法或Update方法,当按钮提示为“新增”时调用AddNew方法,并将按钮提示文字改为“确认”,同时使“删除”按钮和“修改”按钮不可用,而使“放弃”按钮可用。

当新增加记录后需再次单击“确认”按钮调用Update方法添加记录,并将按钮提示文字改为“新增”,使“删除”按钮和“修改”按钮可用,而使“放弃”按钮不可用。

其他按钮的操作类似“新增”按钮。

 

图9-1-6实践活动程序运行界面

活动二学生信息管理系统

活动说明

一个简单的学生信息管理系统,运行时界面及其他各界面如图9-2-1至9-2-6所示,主界面包含两个选项卡,分别为“数据查询”——用于按指定方式查询相应的信息;“数据维护”——用于指定的数据表进行浏览、添加、删除和更新操作。

图9-2-1“选项卡”界面

图9-2-2查询条件输入框

图9-2-3查询结构

图9-2-4“系部”数据表维护界面

图9-2-5“专业”数据表维护界面

图9-2-6“学生信息”数据表维护界面

活动分析

学生信息管理系统在主界面中采用TabControl控件,使得在一个窗体Form1上同时拥有了几个不同的人机交互界面,如图9-2-1所示。

运行时,在“数据查询”选项卡中选择一种查询方式(如按专业查询后),单击“确定”按钮,打开一个输入框,提示输入查询条件(如输入专业代码为“001”,如图9-2-2所示),确定后打开查询结果窗体,显示查询结果(如图9-2-3所示)。

运行时,在“数据维护”选项卡中选择一个表后,单击“确定”按钮,打开相应的维护界面,分别如图9-2-4、图9-2-5、图9-2-6所示,在维护界面上可以分别对“系部”、“专业”和“学生信息”三个表进行添加记录、删除记录和更新当前修改操作,并均可以浏览记录。

在本活动中需要TabControl、DataGrid等控件;添加一个标准模块,在其中定义全局变量。

编程实现

一、主窗体建立

1.首先在窗体上创建一个TabControl控件;

2.按图9-2-1所示添加框架、单选按钮和命令按钮等控件;

3.按题目中各控件的属性进行设置;

4.其他窗体按图9-2-2至图9-2-6所示进行设置。

二、主要控件的属性

1.在TabControl控件的属性页中;TabPages属性添加选项卡,将选项卡数设置为2,并且分别为两个选项卡输入标题Text属性:

“数据查询”和“数据维护”。

图9-2-7

2.将Button按钮的image属性设置为对应的图片。

3.在DataGridView控件的属性中:

RowHeadersVisible属性是指示是否显示包含行的标题列,设置为False。

4.方向箭头为素材图片,其他控件的属性均按图示设置。

提示:

TabControl控件结合了VisualBasic6.0中TabStrip和SSTab两个控件的功能。

三、事件过程代码

1.添加一个标准模块,在模块中定义全局变量

ImportsSystem.Data

ImportsSystem.Data.OleDb

ModuleModule1'自动生成的代码,其它代码需要手动生成

PublicstrAsString

PublicsnoAsString

PublicsnnAsString

PublicmybindAsBindingManagerBase

PublicstrConnAsString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=学生信息管理.mdb"

Public

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2