VB第9章数据库应用_第1页
VB第9章数据库应用_第2页
VB第9章数据库应用_第3页
VB第9章数据库应用_第4页
VB第9章数据库应用_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

第9章

数据库应用

9.1数据库基础9.2ADO.NET原理9.3DataSet应用9.4综合应用9.1数据库基础Access2007(全名MicrosoftOfficeAccess2007)是由微软发布的小型数据库管理系统。它结合了

MicrosoftJetDatabaseEngine和

图形用户界面两项特点,是

MicrosoftOffice的成员之一。Access在2000年的时候成为了计算机等级考试二级选考的一种数据库语言,并且因它的易学易用,正逐步取代传统的VFP成为二级中最受欢迎的数据库语言。9.1.2创建数据库(1)启动Access2007,单击左上角圆形按钮,从弹出的菜单中选择【新建】项,再在窗口右侧设定新建数据库的路径和名称,将此数据库命名为“xscj.accdb”;单击【创建】按钮,如图9.1所示。9.1.2创建数据库(2)单击工具栏选项页【创建】→【表】,右击表标签,选择【设计视图】,如图9.2所示,在【另存为】对话框中给表取名,确定后,系统将打开表的设计视图,进入“数据表设计”窗口。9.1.2创建数据库在该窗口中,有“字段名称”、“数据类型”和“说明”3个选项,可根据需要创建表结构。本例要创建KC(课程)表、XS(学生)表和XS_KC(成绩)3个表。创建XS_KC表结构之后的窗口如图9.3所示,设计完成后关闭设计窗口。9.1.2创建数据库在表设计窗口,按设定的字段名填入后,数据类型自动默认为“文本”,可根据需要从下拉列表(如图9.4)中选定适当的类型;说明列可不填,仅供注释用。9.1.2创建数据库本实验数据库3个表的各字段名称、含义、类型和数据属性如表9.1所示。9.1.2创建数据库(3)3个表的结构建好后,用鼠标双击“XS”表名,打开数据输入界面,在每列中填入相应类型和格式的数据,即可完成该数据表的创建工作。数据输入窗口如图9.5所示。9.1.3SQL语言表9.2列出了常用的SQL命令及其相应的功能,表9.3列出了常用的一些SQL子句,这些命令和子句经过一定的组合,可以创建一个SQL语句,完成某项数据库操作功能。9.1.3SQL语言1.SELECT命令(1)功能SELECT命令的功能是从给定的数据表或数据表的连接中找出满足给定条件的记录,并且返回这些记录的内容。(2)语法SELECT[ALL|DISTINCT|DISTINCTROW]fields_listFROMtable_names[WHERE…][GROUPBY…][HAVING…][ORDERBY…]9.1.3SQL语言(3)参数说明[ALL|DISTINCT|DISTINCTROW]:ALL是选择符合条件的全部记录;DISTINCT是过滤掉包含返回字段内容的记录;DISTINCTROW是过滤掉包含返回记录内容的记录。fields_list:字段名列表,可以来自同一个表或不同的表,字段名之间用逗号分隔。如果不同的表中有相同的字段名,在字段名列表中需要指明该字段来自哪一个表,即以table_name.fields_name方式指明。table_names:要查询的数据表名,可以是一个表或多个表,表名之间用逗号分隔。FROM、WHERE、GROUPBY、HAVING、ORDERBY子句的说明见表9.3。9.1.3SQL语言(4)逻辑运算符、比较运算符、通配符要设置一个查询条件,必然要用到比较运算符、逻辑运算符和一些通配符等,表9.4、表9.5和表9.6分别列出了这些内容。(5)聚合函数在SELECT语句中可使用的聚合函数如表9.7所示。9.1.3SQL语言(6)Select语句示例①查询学生表中所有字段。SELECT*FROMXS②从学生表中查询所有专业名称,要求不重复显示相同的专业名称。SELECTDISTINCTZYMFROMXS③按学号升序、成绩降序检索学生成绩。SELECT*FROMXS_KCORDERBYXHASC,CJDESC④查询至少有一门课成绩大于85的学生姓名。SELECTXMFROMXS,XS_KCWHEREXS_KC.CJ>85andXS.XH=XS_KC.XH⑤查询与“李林”专业相同的学生姓名。SELECTXMFROMXSWHEREXS.ZYM=(SELECTZYMFROMXSWHEREXMIN('李林'))

9.1.3SQL语言⑥查询所有成绩在80~90之间的学生。SELECTXS.XMFROMXS,XS_KCWHERE

(XS_KC.CJBETWEEN80AND90)AND(XS.XH=XS_KC.XH)⑦计算英语课的平均成绩、最高成绩和最低成绩。SELECTKCM, AVG(XS_KC.CJ)AS"平均成绩", MAX(XS_KC.CJ)AS"最高成绩", MIN(XS_KC.CJ)AS"最低成绩"FROMXS_KC,KC;

WHEREKCM=

"英语"ANDXS_KC.KCH=KC.KCH⑧统计每门课程的名称、平均成绩。SELECTKC.KCM,AVG(XS_KC.CJ)AS"平均成绩"FROMKC,XS_KC;

GROUPBYXS_KC.KCHWHEREXS_KC.KCH=KC.KCH⑨将成绩表和课程表按内部连接,查询每个学生的学号、课程名、该课程成绩。SELECTXS_KC.XH,KC.KCM,XS_KC.CJFROMXS_KCINNERJOINKCON

XS_KC.KCH=KC.KCH9.1.3SQL语言2.INSERT命令(1)功能INSERT命令的功能是向一个表中加入一条记录。(2)语法INSERTINTOtable[(field1[,field2[,…]])]VALUES(val1[,val2[,…]])使用该语句时,必须指定要加入的每个字段名和它对应的值。如果一个字段和对应的数值为空,那么系统自动加入一个相应的默认值,新加入的记录排在表的尾部。例如:InsertintoXS_KC(CJ,KCH,XH)values(78,'01','060102')9.1.3SQL语言3.UPDATE命令(1)功能UPDATE命令的功能是把数据表中的某些字段值设置为一个新值。(2)语法UPDATEtableSETvalueWHEREcriteria其中,SET子句中的value是一个等式。它将改变指定的表中被选择的那些记录的当前值。例如:UPDATEXS_KCSETCJ=87,KCH='02'WHEREXKID=319.1.3SQL语言4.DELETE命令(1)功能DELETE命令的功能是一次删除指定表中的记录。该命令删除的是整条记录,而不是单个字段。(2)语法DELETE*FROMtableWHEREcriteria例如:DELETE*FROMXS_KCWHEREXH='060102'

9.2ADO.NET原理9.2.1ADO.NET模型ADO.NET(ActiveXDataObject.NET)是一个功能强大的数据访问接口,通过ADO.NET可以方便地访问数据库,其编程接口如图9.6所示。9.2.1ADO.NET模型SQLServer.NET和OLEDB.NET数据提供程序访问物理数据库模型如图9.7所示。9.2.2ADO.NET结构ADO.NET对象模型的两个核心组件是.NET数据提供程序和DataSet对象,其结构如图9.8所示。9.2.3数据访问控件在VB.NET集成开发环境工具箱的“数据”控件列表中,有DataSet、DataGridView、BindingSource、BindingNavigator等控件,如图9.9所示。9.2.3数据访问控件针对不同数据库编程的时候还会用到几组不同前缀的Connection、DataAdapter、Command等控件,如果控件不在工具箱中,可以用鼠标右击工具箱,选择【选择项】菜单,进入【选择工具箱项】对话框,将相应的控件添加到工具箱中,如图9.10所示。9.2.4数据访问步骤(1)用Connection建立与数据库的连接。在ADO.NET中,一般用Connection对象建立与数据库的连接,在工具箱中有几种Connection对象,可以根据需要选择。通过设置Connection对象的ConnectionString属性,可以连接各种数据源,该属性值是字符串类型,称为数据库连接串,不同的数据库,它的连接串是不同的。例如,连接到D盘MyDocuments文件夹中的Access数据库xscj.accdb的连接串如下:OleDbConnection1.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource='D:\MyDocuments\xscj.accdb'" '定义连接OleDbConnection1.Open() '打开连接9.2.4数据访问步骤①首先,通过单击【数据】→【添加新数据源】菜单项,弹出对话框,如图9.11(a)所示,单击【下一步】按钮,在对话框中单击【新建连接】按钮,显示如图9.11(b)所示。9.2.4数据访问步骤选择要连接的数据库文件名,单击【确定】按钮,显示如图9.12所示,再单击【完成】按钮,系统即建立了一个数据源,新建的DataSet对象名为“xscjDataSet”。9.2.4数据访问步骤②其次,在项目中添加一个OleDbConnection对象,在它的“ConnectionString”属性下拉列表中将显示系统已建立的连接,如图9.13所示,选择相应的连接即可完成数据库的连接设置。③最后,在程序中调用OleDbConnection对象的Open方法打开数据库连接。9.2.4数据访问步骤(2)用Command对象执行SQL命令。连接数据库后,通过Command对象或DataAdapter对象执行Select、Insert、Update或Delete等SQL命令,对数据库进行查询、插入、更新和删除等操作。Command对象要执行的SQL命令是通过它的CommandText属性定义的,CommandText属性值也是字符串类型。执行SQL命令通过调用Command对象的几个方法来完成,Command对象的常用方法见表9.8。9.2.4数据访问步骤(3)用DataAdapter对象执行SQL命令。若不用Command对象执行SQL命令,也可用DataAdapter对象对数据库进行操作。DataAdapter对象可用于在数据源和DataSet数据集之间交换数据,它向DataSet填充数据或把DataSet数据更新回原始数据源。DataAdapter对象包含4个Command对象,分别是SelectCommand、InsertCommand、UpdateCommand和DeleteCommand,它们分别执行Select、Insert、Update和Delete命令。9.2.4数据访问步骤(4)显示数据。从数据库查询得到的结果需要在窗体中显示出来,可以利用数据显示控件来实现。常用的数据显示控件是DataGridView(图标为

)。该控件的一个重要属性是“DataSource”,用于设置绑定的数据源,它的值可以是一个数据集合,如DataSet对象等。9.2.5数据访问简单实例【例9.1】用DataAdapter、DataSet对象和DataGridView控件,读取并显示课程数据表。将xscj.accdb数据库文件放到特定目录下(本例为D:\MyDocuments)。项目建立后,在设计窗口,添加一个按钮和一个DataGridView控件用来显示查询结果,适当调整该控件的大小及外观,其他属性都采用默认值。在按钮的Click事件中,实现数据库连接、打开、查询、显示,所有与数据库访问有关的对象都是在代码中创建,具体程序代码。9.2.5数据访问简单实例本例在程序中创建Connection、DataAdapter、Command和DataSet对象,而不是利用控件来创建。程序连接并打开xscj数据库,读取KC表填充到DataSet对象,再将KC表在DataGridView控件中显示输出,运行结果如图9.14所示。9.3DataSet应用9.3.1DataSet及相关对象1.DataAdapter对象DataAdapter对象用来传递各种SQL命令,并将命令执行结果填入DataSet对象。并且它还可将DataSet更改过的数据写回数据源。它是数据库与DataSet对象之间沟通的桥梁。DataAdapter怎样向DataSet填充数据呢?如图9.15所示。9.3.1DataSet及相关对象使用DataAdapter对象前必须先创建,创建DataAdapter对象的语法格式有如下4种:①Dim对象名

AsNewOleDbDataAdapter()②Dim对象名

AsNewOleDbDataAdapter(OleDbCommand对象)③Dim对象名

AsNewOleDbDataAdapter(SQL命令串,OleDbConnection对象)④Dim对象名

AsNewOleDbDataAdapter(SQL命令串,连接字符串)

9.3.1DataSet及相关对象例如,以下代码使用第1种格式创建DataAdapter对象:DimconnAsNewOleDbConnection()DimcmdAsNewOleDbCommand()conn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource= 'D:\MyDocuments\xscj.accdb'"conn.Open()cmd.Connection=conncmd.CommandText="Select*fromXS"DimAdptAsNewOleDbDataAdapter(cmd)再如,以下代码使用第3种格式创建DataAdapter对象:DimconnAsNewOleDbConnection()conn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource= 'D:\MyDocuments\xscj.accdb'"conn.Open()DimAdptAsNewOleDbDataAdapter("Select*fromXS",conn)9.3.1DataSet及相关对象第1种格式是在创建DataAdapter对象后,再赋予其连接、SQL命令等对象属性值,第4种格式则不需先建立OleDbConnection和OleDbCommand对象即直接创建,例如:DimAdptAsNewOleDbDataAdapter("Select*fromXS","Provider=Microsoft.ACE.OLEDB.12.0; DataSource='D:\MyDocuments\xscj.accdb'")9.3.1DataSet及相关对象DataAdapter对象的常用属性和方法分别列于表9.9和表9.10中。9.3.1DataSet及相关对象2.DataSet对象DataSet对象包括3个常用的集合:DataTableCollection(数据表集合,包括多个DataTable对象)、DataRowCollection(行集合,包含多个DataRow对象)和DataColumnCollection(列集合,包含多个DataColumn对象)。DataSet对象的结构如图9.16所示。9.3.1DataSet及相关对象必须先创建DataSet对象后才能使用它,创建的语法格式如下:Dim对象名

AsNewDataSet()Dim对象名

AsNewDataSet(数据集名)第1种格式未指出数据集名,可在创建DataSet对象后用DataSetName属性来设置。例如,以下代码定义数据集对象DS,其中包含数据表XS:DimconnAsString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource= 'D:\MyDocuments\xscj.accdb'"DimObjAdptAsNewOleDbDataAdapter("Select*fromXS",conn)DimDSAsNewDataSet()'定义DataSet对象ObjAdpt.Fill(DS,"students")'填充数据集9.3.1DataSet及相关对象DataSet对象的常用属性和方法分别列于表9.11和表9.12中。9.3.1DataSet及相关对象3.DataRelation对象创建DataRelation对象实例的语法格式如下:关系对象名

=NewDataRelation(关系名,DataColumn1,DataColumn2)例如,定义一个名为XS_XK的DataRelation对象,用名为tblXS和tblXK的DataTable对象中的学号字段,创建学生表和学生成绩表之间的关系,代码如下:XS_XK=NewDataRelation("XSXS_KC",tblXS.Columns("XH"),tblXK.Columns("XH"))

9.3.2用DataSet查询数据库1.简单查询【例9.2】分别用一个DataGridView、DataAdapter、DataSet、Connection控件和一个按钮对象,查询学生信息。本例题还要添加OleDbDataAdapter1控件对象,它充当数据库和程序之间的数据搬运者。添加OleDbDataAdapter1时,会自动弹出【数据适配器配置向导】对话框;或在以后修改OleDbDataAdapter1时,在控件对象上单击鼠标右键,在弹出的菜单中选择【配置数据适配器】,再在对话框中选择连接,选择数据表,生成SQL语句,如图9.17所示。9.3.2用DataSet查询数据库完成数据库连接和数据表设定后,下一步要做的工作是建立应用程序的DataSet对象,如图9.18所示,右击OleDbDataAdapter1控件,选择【生成数据集】,出现图9.19的【生成数据集】对话框,勾选XS数据表前的复选框,单击【确定】按钮。

9.3.2用DataSet查询数据库然后在窗体上再添加一个DataGridView控件,作为表格的输出,其DataSource属性值设为XscjDataSet1,其DataMember属性值设为XS表,如图9.20所示,DataGridView1控件中就会出现XS表的各个字段。此时只有表结构,数据并没有出现,具体的数据在运行时才能得到,如图9.21所示。

9.3.2用DataSet查询数据库上述操作添加了4个控件并完成相应的属性设置后,程序代码只需简单的一行就可以实现数据库查询了,程序代码如下:PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) HandlesButton1.ClickOleDbDataAdapter1.Fill(XscjDataSet1)EndSub9.3.2用DataSet查询数据库单击【查询】按钮,输出结果如图9.22所示。9.3.2用DataSet查询数据库2.条件查询【例9.3】按学号条件查询学生信息,要求学号和姓名栏的标题用汉字显示,不显示备注字段。新建项目,在设计窗口添加一个GroupBox、一个标签、一个文本框(TxtXH)、一个按钮(Button1)和一个DataGridView控件,适当调整该控件的大小,其他属性都采用默认值,如图9.23所示。9.3.2用DataSet查询数据库在【查询】按钮的Click事件中,实现数据库连接、打开、查询和显示。若用户输入了学号,则按该学号进行模糊查询,否则输出全部记录,具体程序代码。在学号中输入“0601”,单击【查询】按钮,运行结果如图9.24所示。9.3.2用DataSet查询数据库3.关联表查询【例9.4】查询并输出“学生”与“成绩”两个关联数据表,要求单击学生表的记录时,在成绩表中自动显示该学生的各科成绩。新建项目,在设计窗口添加一个【查询】按钮(Button1)和两个DataGridView控件(分别用来显示“学生表”和“成绩表”),适当调整控件大小,其他属性采用默认值,如图9.25所示。9.3.2用DataSet查询数据库要实现关联查询,首先要建立DataAdapter、Connection、DataSet对象,同时还要建立DataRelation对象“XS_XK”;在打开数据库连接后,分别获取“学生”、“成绩”两个关联数据表,建立它们之间的关系;然后将关系添加到DataSet中。所有的操作都在【查询】按钮的Click事件代码中完成,程序代码。9.3.2用DataSet查询数据库4.XML数据查询【例9.5】用DataSet查询包含“成绩”数据表的XML文件。XML文档可以用一系列的标记,以文本方式描述数据,如Access的数据表,可以另存为XML格式的文件。右击KC:表,从快捷菜单中选择【导出】→【XML文件】,指定目标路径,如图9.26所示。9.3.2用DataSet查询数据库本例用到的文件“KC.xml”存放在D:\MyDocuments\目录中,XML源文件。新建项目,在设计窗口添加一个【XML表格】按钮(Button1)、一个【XML原文】按钮(Button2)、一个多行文本框(Textbox1)和一个DataGridView控件,适当调整控件大小,其他属性采用默认值,如图9.27所示。9.3.2用DataSet查询数据库下面是【XML表格】和【XML原文】按钮的单击事件代码:DimKCxmlAsNewDataSetPrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) HandlesButton1.ClickKCxml.Clear()KCxml.ReadXml("D:\MyDocuments\KC.xml")WithDataGridView1.DataSource=KCxml.DataMember="KC"EndWithEndSub

PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) HandlesButton2.ClickDimswXMLAsNewSystem.IO.StringWriterKCxml.WriteXmlSchema(swXML)TextBox1.Text=swXML.ToStringEndSub9.3.3用DataAdapter对象更新数据库【例9.6】通过DataAdapter对象维护“学生”表记录。新建项目,在窗体上布置一个DataGridView控件作为学生数据表的输出;若干标签、文本框、组合框和一个DateTimePicker控件,用于显示学生明细信息;3个Button分别实现添加、修改和删除学生记录操作。另外,数据操作的Connection、DataAdapter、Command和DataSet对象在程序中添加。窗体中主要控件及对象属性见表9.13。9.3.3用DataAdapter对象更新数据库设计效果见图9.28。9.3.3用DataAdapter对象更新数据库功能设计:当加载窗体后,将读取学生表并添加到DataSet对象中,同时在DataGridView中显示学生记录。当选择学生记录时,在下面的各文本框、组合框中显示相应学生的详细数据,同时可在其中修改和添加记录。【添加】按钮的功能是将各文本框、组合框等对象中输入的值作为一条新记录添加到物理数据库中;【修改】按钮的功能是将各文本框、组合框等对象中输入的值作为DataGridView中当前选择的记录写入物理数据库;【删除】按钮的功能是将DataGridView中当前选择的记录从物理数据库中删除。当进行添加、修改、删除操作时,均弹出“确认”对话框提示用户。9.3.3用DataAdapter对象更新数据库为便于所有过程对数据库的访问,在窗体层定义3个全局变量,分别是一个数据集DataSet对象、一个学生表DataTable对象、一个OleDbDataAdapter对象。同时还定义两个全局过程,其中refreshdata过程用于更新物理数据库并刷新窗体中的数据显示,bindgridview过程用于读取数据库并显示数据。程序代码。9.3.3用DataAdapter对象更新数据库当窗体加载时,要在DataGridView中显示学生数据表,因此在窗体Load事件代码中调用bindgridview过程,读取学生表并显示记录。程序代码如下:PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) HandlesMyBase.Loadbindgridview()txtStuXH.Text=DataGridView1.CurrentRow.Cells.Item(0).Value.ToString '显示学号txtStuXM.Text=DataGridView1.CurrentRow.Cells.Item(1).Value.ToString '显示姓名txtStuZXF.Text=DataGridView1.CurrentRow.Cells.Item(5).Value.ToString '显示总学分cbxStuXB.Text=DataGridView1.CurrentRow.Cells.Item(3).Value.ToString '显示性别cbxStuZYM.Text=DataGridView1.CurrentRow.Cells.Item(2).Value.ToString '显示专业dtpStuCSSJ.Text=DataGridView1.CurrentRow.Cells.Item(4).Value.ToString '显示出生日期txtStuBZ.Text=DataGridView1.CurrentRow.Cells.Item(6).Value.ToString '显示备注EndSub9.3.3用DataAdapter对象更新数据库当用户选择DataGridView中的学生记录时,会触发CellClick事件,在下面的各文本框、组合框中显示相应学生的详细数据,程序代码如下:PrivateSubDataGridView1_CellClick(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.DataGridViewCellEventArgs)HandlesDataGridView1.CellClicktxtStuXH.Text=DataGridView1.CurrentRow.Cells.Item(0).Value.ToString '显示学号txtStuXM.Text=DataGridView1.CurrentRow.Cells.Item(1).Value.ToString '显示姓名txtStuZXF.Text=DataGridView1.CurrentRow.Cells.Item(5).Value.ToString '显示总学分cbxStuXB.Text=DataGridView1.CurrentRow.Cells.Item(3).Value.ToString '显示性别cbxStuZYM.Text=DataGridView1.CurrentRow.Cells.Item(2).Value.ToString '显示专业dtpStuCSSJ.Text=DataGridView1.CurrentRow.Cells.Item(4).Value.ToString '显示出生日期txtStuBZ.Text=DataGridView1.CurrentRow.Cells.Item(6).Value.ToString '显示备注EndSub9.3.3用DataAdapter对象更新数据库在【添加】按钮的Click事件代码中,先弹出“确认”对话框要求用户确认,若确认则创建一个新的记录对象,将用户输入的数据分别填入记录对象相应的字段中,然后再将新记录添加到DataSet对象的学生表中,最后调用refreshdata过程写入物理数据库并刷新显示。程序代码如下:PrivateSubbtnAdd_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) HandlesbtnAdd.ClickDimresponseAsMsgBoxResultresponse=MsgBox("确实要添加记录吗?",vbOKCancel+vbQuestion,"系统提示")Ifresponse=MsgBoxResult.OkThen '用户选择“确定”DimmyRowAsDataRow=objXSTable.NewRow()

myRow("学号")=txtStuXH.TextmyRow("姓名")=txtStuXM.TextmyRow("ZXF")=txtStuZXF.TextmyRow("XB")=cbxStuXB.TextmyRow("ZYM")=cbxStuZYM.TextmyRow("BZ")=txtStuBZ.TextmyRow("CSSJ")=CDate(dtpStuCSSJ.Text)objXSTable.Rows.Add(myRow) '向学生表添加记录refreshdata() '更新并刷新显示EndIfEndSub9.3.3用DataAdapter对象更新数据库在【修改】按钮的Click事件代码中,先弹出“确认”对话框要求用户确认,若确认则将使用用户输入的数据对DataSet学生表的当前记录对象相应的字段分别进行修改,然后再调用refreshdata过程写入物理数据库并刷新显示。程序代码。9.3.3用DataAdapter对象更新数据库在【删除】按钮的Click事件代码中,先弹出“确认”对话框要求用户确认,若确认则将用户选择的DataSet学生表中的当前记录删除,然后再调用refreshdata过程写入物理数据库并刷新显示。程序代码如下:PrivateSubbtnDelete_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) HandlesbtnDelete.ClickDimresponseAsMsgBoxResultresponse=MsgBox("确实要删除记录吗?",vbOKCancel+vbQuestion,"系统提示")Ifresponse=MsgBoxResult.OkThen '用户选择“确定”objXSTable.Rows.Item(DataGridView1.CurrentRow.Index).Delete() '删除当前记录refreshdata() '更新并刷新显示EndIfEndSub9.3.3用DataAdapter对象更新数据库程序运行后,若选择记录并删除,效果如图9.29所示。9.4综合应用【例9.7】查询学生信息并维护学生表记录。本例是在例9.6的基础上,增加按学号查询学生信息功能,缩小学生记录的范围,方便用户维护。新建项目,在窗体上设计一个分组框并在其中布置一个文本框和一个查询按钮,在窗体中布置一个DataGridView作为学生数据表的输出,若干标签、文本框、组合框和一个DateTimePicker控件,用于显示学生明细信息,3个Button分别实现添加、修改和删除学生记录;另外,数据操作的Connection、DataAdapter、Command和DataSet对象在程序中添加。9.4综合应用窗体中主要控件及对象属性见表9.14。9.4综合应用界面设计的布局如图9.30所示。9.4综合应用功能设计:加载窗体后,读取学生表的全部记录并添加到DataSet对象中,同时在DataGridView中显示全部学生记录。当单击“查询”按钮时,将按用户输入的学号进行模糊查询,筛选出符合条件的学生记录,并在DataGridView中显

温馨提示

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

评论

0/150

提交评论