




已阅读5页,还剩98页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C#程序设计,第9章使用ADO.NET进行数据库编程,目录,第9章使用ADO.NET进行数据库编程,本章以一个简单的访问数据库的Windows应用程序为例,向读者介绍ADO.NET框架的结构,C#数据库访问的常用方法,以及相关数据库访问对象和控件的常用属性和方法。,9.1概述,微软公司推出的ADO.NET是Microsoft.NETFramework的核心组件,其目的是为了从数据操作中分解出数据访问。ADO.NET的两个核心组件会完成此任务:DataSet(数据集)和.NETFramework数据提供程序,后者是一组包括Connection,Command,DataReader和DataAdapter对象在内的组件。.NETFramework数据提供程序负责与物理数据源的连接,DataSet代表实际的数据。ADO.NET的结构如图9-1所示。,9.1概述,9.1概述,.NET数据提供程序用于连接到数据库,执行命令和查询结果。它为程序开发者处理不同类型的数据库系统提供了不同的程序类。如表9-1所示。,9.1概述,针对SQLServer的数据提供程序,包含的各种类,见表9-2。,9.1概述,9.1.1项目概述9.1.2数据库设计,9.1.1项目概述,本章我们要完成一个简单的多窗体的数据库应用程序“电影荐评系统”。该系统要求向登录的用户提供如下功能:1.搜索电影,用户可以输入电影名称关键字,查看系统中包含相应关键字的电影的介绍;2.评价电影,用户可以对感兴趣的或者看过的电影,给出自己的评分和评论;3.推荐电影,向当前登录用户推荐他没看过(没评价过),其他用户评分高的电影。,9.1.1项目概述,“电影荐评系统”的流程图如图9-2所示。,9.1.2数据库设计,要完成对电影和电影评价的保存,还要记录登录的用户信息,这个简单的系统需要三张数据表来完成数据的保存。系统的表结构如下:1.filmintro(电影介绍表)表filmintro用于保存系统所有的电影信息,9.1.2数据库设计,2.users(用户表)表users用于保存系统所有的用户信息,9.1.2数据库设计,3.scores(电影评价表)表scores用于保存系统所有的评价信息,9.2窗体设计部分,整个FSS项目,划分成主要的6个任务来完成,首先是窗体的设计,然后是各个窗体代码的完成。C#Winform应用程序的编制步骤,一般是先构建窗体,然后补充窗体上相应控件的事件过程代码,因此我们的讲解也分成两步来进行完成。本节完成对“电影荐评系统”的窗体绘制。该系统包含了5个基本窗体,分别是系统登录窗体、“导航”窗体、“搜索电影”窗体、“评价电影”窗体以及“推荐电影”窗体。,9.2窗体设计部分,任务9.1各窗体的设计C#Winform应用程序的编制步骤,一般是先构建窗体,然后补充窗体上相应控件的事件过程代码,因此我们的讲解也分成两步来进行完成。本任务完成对“电影荐评系统”的窗体绘制。该系统包含了5个基本窗体,分别是系统登录窗体、“导航”窗体、“搜索电影”窗体、“评价电影”窗体以及“推荐电影”窗体。,9.2窗体设计部分,任务9.1任务实施(一)在VisualStudio中建立Winform项目(1)设置VisualStudio的开发语言环境初次打开VisualStudio2008如果开发语言不是C#,可以在如果打开的VisualStudio当前针对的开发语言不是C#,那么选择菜单栏里的【工具】|【导入与导出设置(I).】如图9-3,即打开“导入与导出设置向导”对话框,选择【重置所有设置】单选项,单击【下一步】按钮,如图9-4所示。,9.2窗体设计部分,任务9.1任务实施(一)在VisualStudio中建立Winform项目(1)设置VisualStudio的开发语言环境,9.2窗体设计部分,任务9.1任务实施(一)在VisualStudio中建立Winform项目(2)新建FSS项目选择【文件】|【新建】|【项目】命令,打开“新建项目”对话框,在“模板”区域选择“Windows应用程序”,在“名称”框里输入本项目的名称“FSS”,在“位置”框里设置项目保存的路径,单击“确定”完成项目创建。操作如图9-8所示。,9.2窗体设计部分,任务9.1任务实施(一)在VisualStudio中建立Winform项目(2)新建FSS项目,9.2窗体设计部分,任务9.1任务实施(一)在VisualStudio中建立Winform项目(2)新建FSS项目建立起项目后的VisualStudio界面,如图9-9所示。,9.2窗体设计部分,任务9.1任务实施(二)系统登录窗体模块(1)系统登录模块概述系统登录模块主要用于对进入“电影荐评系统”的用户进行安全性检查,以防止非法用户登录系统。验证用户名和密码,如果是合法用户,则允许登录。系统登录模块窗体布局如图9-10所示。,9.2窗体设计部分,任务9.1任务实施(二)系统登录窗体模块(2)图片的插入单击“工具箱”调板中的“PictureBox”控件,再在“Form1.cs设计”窗口中单击,会出现图片框控件pictureBox1。拖动周围的控制点将其缩放到合适大小。选中pictureBox1对象,调出“属性”窗格(【视图】|【属性窗口(W)】命令,快捷键Ctrl+W),修改图片框控件“Image”属性,单击“Image”属性右侧的图标,打开“选择资源”对话框,选择【本地资源】单选按钮,单击【导入】,在打开的对话框中,找到要插入图片框的图片文件,单击【确定】完成图片插入。如图9-11所示。,9.2窗体设计部分,任务9.1任务实施(二)系统登录窗体模块(2)图片的插入,9.2窗体设计部分,任务9.1任务实施(二)系统登录窗体模块(3)添加其他控件该窗体用到的主要控件如表9-6所示。,9.2窗体设计部分,任务9.1任务实施(三)“导航”窗体模块(1)“导航”模块概述“导航”窗体,也就是相当于系统的主窗体,通过主窗体可以快速地了解和使用系统支持的所有功能,使用户能够在最短的时间内掌握软件的使用。当用户通过登录模块成功地登录系统后,会进入系统的“导航”窗体,其界面布局如图9-13所示。,9.2窗体设计部分,任务9.1任务实施(三)“导航”窗体模块(1)“导航”模块概述,9.2窗体设计部分,任务9.1任务实施(三)“导航”窗体模块(2)添加新的窗体新建的项目中,默认只有一个窗体文件,如果要多个窗体在一个项目中,就需要用户自己添加窗体。打开“解决方案资源管理器”窗格,选中项目名称后,单击右键,在快捷菜单中选择【添加】|【Windows窗体】,在弹出的“添加选项”对话框的“名称”框内输入要添加的窗体名称,默认是Form2,Form3.如图9-14示。,9.2窗体设计部分,任务9.1任务实施(三)“导航”窗体模块(2)添加新的窗体,9.2窗体设计部分,任务9.1任务实施(三)“导航”窗体模块(3)添加控件该窗体用到的主要控件如表9-7示。,9.2窗体设计部分,任务9.1任务实施(四)“搜索电影”窗体模块(1)“搜索电影”模块概述“搜索电影”窗体,能够根据用户在“导航”窗体“搜电影”一栏的文本框中输入的关键字,在数据库的“电影介绍表”中搜索,电影名称含有该关键字的电影,并显示在窗体对应的控件中,“搜索电影”窗体界面布局如图9-15所示。,9.2窗体设计部分,任务9.1任务实施(四)“搜索电影”窗体模块(2)窗体的分区从前面两个窗体可以看出,我们系统的窗体中都有明显的“分区”。这里用到了Panel控件,来对窗体分区。从“工具箱”中拖入Panel控件,如图9-16所示。,9.2窗体设计部分,任务9.1任务实施(四)“搜索电影”窗体模块(3)添加控件该窗体用到的主要控件如表9-8示。,9.2窗体设计部分,任务9.1任务实施(四)“搜索电影”窗体模块(3)添加控件,9.2窗体设计部分,任务9.1任务实施(五)“评价电影”窗体模块(1)“评价电影”模块概述“评价电影”窗体,能够根据用户在“导航”窗体“评电影”一栏的文本框中输入的关键字,在数据库的“电影介绍表”中搜索,找到与关键字匹配的电影,如果存在,就把与该电影相关的所有评论显示在“评价电影”窗体的“网格视图”控件中。并允许用户插入、修改、删除相应的评论记录。“评价电影”窗体也允许用户由“搜索电影”窗体或“推荐电影”窗体跳转过来。其界面布局如图9-17所示。,9.2窗体设计部分,任务9.1任务实施(五)“评价电影”窗体模块(1)“评价电影”模块概述,9.2窗体设计部分,任务9.1任务实施(五)“评价电影”窗体模块(2)添加DataGridView控件在工具箱中的“数据”选项列找到DataGridView控件,添加到窗体的Panel1里,添加方法和其他控件一样,需要自行拖出合适的大小。,9.2窗体设计部分,任务9.1任务实施(五)“评价电影”窗体模块(3)添加控件该窗体用到的主要控件如表9-9所示。,9.2窗体设计部分,任务9.1任务实施(五)“评价电影”窗体模块(3)添加控件,9.2窗体设计部分,任务9.1任务实施(六)“推荐电影”窗体模块(1)“推荐电影”模块概述“推荐电影”窗体,能够在“电影评论表”中找出当前登录用户没有评价过的电影,然后根据其他人对电影评分的平均值,按照由高分到低分的原则,向用户列出这些电影的详细介绍信息。窗体结构和“搜索电影”几乎一样,而代码实现逻辑完全不同,其窗体布局如图9-19所示。,9.2窗体设计部分,任务9.1任务实施(六)“推荐电影”窗体模块(1)“推荐电影”模块概述,9.2窗体设计部分,任务9.1任务实施(六)“推荐电影”窗体模块(2)添加控件该窗体用到的主要控件如表9-10所示。“推荐电影”模块概述,9.2窗体设计部分,任务9.1任务实施(六)“推荐电影”窗体模块(2)添加控件,9.2窗体设计部分,任务9.1支撑知识(一)DataGridView控件DataGridView控件是在.NETFramework2.0版中新增的,提供一种强大而灵活的以表格形式显示数据的方式。可以使用DataGridView控件来显示少量数据的只读视图,也可以对其进行缩放以显示特大数据集的可编辑视图使用DataGridView控件,可以显示和编辑来自多种不同类型的数据源的表格数据。将数据绑定到DataGridView控件非常简单和直观,在大多数情况下,只需设置DataSource属性即可。在绑定到包含多个列表或表的数据源时,只需将DataMember属性设置为指定要绑定的列表或表的字符串即可。,9.2窗体设计部分,任务9.1支撑知识(一)DataGridView控件,9.2窗体设计部分,任务9.1支撑知识(一)DataGridView控件,9.2窗体设计部分,任务9.1支撑知识(一)DataGridView控件,9.2窗体设计部分,任务9.1支撑知识(二)Panel控件panel是一个服务器端控件,也是一个容器控件。用于包含其它服务器控件或其它内容并控制这些内容的显示时机。在某些场合,这个控件是很有用的。比如在制作一个注册项很多的注册页面时,通常的做法是将所有注册项放在一个页面上,利用panel就可以实现将一个页面的内容分段显示,这样用户在注册时,感觉就好像是在访问多个页面。,9.3代码设计部分,完成了对五个窗体绘制的工作之后,需要为每个窗体的相关控件,添加事件过程代码,才能让用户通过窗体上的控件,来访问或修改数据库。,9.3代码设计部分,任务9.2“登录”窗体代码实现完成了对五个窗体绘制的工作之后,需要为每个窗体的相关控件,添加事件过程代码,才能让用户通过窗体上的控件,来访问或修改数据库。,9.3代码设计部分,任务9.2任务实施“登录”窗体的代码添加(1)命名空间的引用由于我们访问的数据库是SQLServer,访问数据库相关的数据提供程序对象都包含在System.Data.SqlClient命名空间中,在程序的开头要加上对这个命名空间的引用,即:usingSystem.Data.SqlClient;否则,每写一个类,都需要把它处在的命名空间情况完整地写出来。,9.3代码设计部分,任务9.2任务实施“登录”窗体的代码添加(2)窗体间数据的共享该实验系统采用了最简单的方式来实现不同窗体间的数据共享,即用公共静态变量来办到。公共属性决定了窗体里的该变量能够被其他窗体或模块里的过程调用,静态属性决定了当前窗体关闭后,仍能够保持该变量的值存在。在“登录”窗体Form1的类体中,定义全局静态变量userid,用以标示登录的用户:/定义全局静态变量userid,标示登录的用户publicstaticstringuserid;,9.3代码设计部分,任务9.2任务实施“登录”窗体的代码添加(3)【登录】按钮事件代码在设计视图中,双击【登录】按钮,为其添加单击事件代码(4)【退出】按钮事件代码如下:privatevoidbtnEnd_Click(objectsender,EventArgse)Application.Exit();,9.3代码设计部分,任务9.2支撑知识(一)连接(SqlConnection对象)的创建1.连接字符串要实现数据源的连接,首先要引出连接字符串的概念。连接字符串(ConnectionString)是在连接数据源时所提供的必要的连接信息,其中包括连接的服务器对象、账号、密码和所访问的数据库对象等信息,是进行数据必不可少的信息。一般,一个连接字符串中所包含的信息,9.3代码设计部分,任务9.2支撑知识(一)连接(SqlConnection对象)的创建1.连接字符串一个连接字符串中所包含的信息,如表9-14所示。,9.3代码设计部分,任务9.2支撑知识(一)连接(SqlConnection对象)的创建2.运行时创建连接要建立连接,就需要新建Connection类的实例,如果数据库是SQLServer,那么就要创建SqlConnection类的实例,当连接对象创立后,紧接着就要对对象的连接字符串属性进行设置。,9.3代码设计部分,任务9.2支撑知识(一)连接(SqlConnection对象)的创建3.Connection(连接类)的方法当建立好一个连接对象后,就可以使用已经创建好的这个对象,进行诸如打开、关闭等操作,同时可以针对对象状态的变化而变化对象的操作。连接类SqlConnection主要有以下3个方法:Open()表示打开一个已建立好的连接对象。Close()表示关闭一个已打开的连接对象,将连接释放到服务器的连接池中,以便下次启动相似的连接时能快速地建立连接。Disposed()移出连接,从服务器的连接池中删除连接,以保存服务器资源。,9.3代码设计部分,任务9.2支撑知识(二)命令(SqlCommand对象)的创建在连接好数据源后,就可以对数据源执行一些命令操作。命令操作包括从数据存储区(数据库、数据文件等)检索或对数据存储区进行插入、更新、删除操作。在ADO.NET中这些操作都可以通过命令对象来创建。SqlCommand类的实例对象保存的就是要对SQLServer数据库执行的一个Transact-SQL语句或存储过程。,9.3代码设计部分,任务9.2支撑知识(二)命令(SqlCommand对象)的创建SqlCommand类的常用属性如表9-15所示。,9.3代码设计部分,任务9.2支撑知识(二)命令(SqlCommand对象)的创建Command对象的常用方法,如表9-16所示。,9.3代码设计部分,任务9.2支撑知识(三)结果(SqlDataReader对象)的创建ADO.NET通过SqlCommand对象执行SQL语句可直接对数据库进行处理,当SqlCommand对象执行SQL查询语句之后,会返回一个SqlDataReader对象,它是一个结果集。该结果集是由满足查询条件的所有行组成的集合,它排列成表的形式,可以通过SqlDataReader对象的属性和方法访问SqlDataReader中的数据。但是值得注意的是,SqldataReader对象中的数据只能进行只读、向前的访问。,9.3代码设计部分,任务9.2支撑知识(三)结果(SqlDataReader对象)的创建SqlDataReader是实现IDataReader接口的类,若要创建SqlDataReader对象,则必须调用SqlCommand对象的ExecuteReader方法,而不能直接调用其构造函数。SqlCommand.ExecuteReader方法执行返回行的命令,它将CommandText发送到Connection,并生成一个SqlDataReader,9.3代码设计部分,任务9.2支撑知识(三)结果(SqlDataReader对象)的创建SqlDataReader(数据阅读器)类的常用属性,如表9-17所示。,9.3代码设计部分,任务9.2支撑知识(三)结果(SqlDataReader对象)的创建数据阅读器类的常用方法,如表9-18所示。,9.3代码设计部分,任务9.2支撑知识(四)验证机制本任务中,是否是合法用户的验证机制是,通过将用户在文本框中输入的用户名和密码作为关键字到数据库的用户表中查询,根据返回的结果是否为空来验证当前用户身份的合法性。返回结果(SqlDataReader对象)为空,说明当前用户非法,弹出相应的对话框提示用户出错;非空,说明当前用户合法,跳转到Form2,并将其用户ID记录在静态全局变量userid中。,9.3代码设计部分,任务9.2支撑知识(五)窗体的切换由于窗体本身是以类的形式存在,所以要打开新的窗体,就必须现实例化该窗体类的对象,并调用窗体的Show方法让其显示,对当前窗体则调用Hide方法隐藏起来:Frm2f2=newFrm2();f2.Show();this.Hide();,9.3代码设计部分,任务9.3“导航”窗体代码实现对“导航”窗体(Frm2)进行代码编写,完成窗体各控件功能。,9.3代码设计部分,任务9.3任务实施“导航”窗体的代码添加(1)窗体间数据的共享该窗体依然采用公共静态变量的方式来完成与其它窗体间数据的共享操作。这里定义了电影名称和电影编号两个变量:/定义全局静态变量fileName,标示搜索的电影名关键字publicstaticstringfilmName=;/定义全局静态变量filmid,标示电影编号publicstaticstringfilmid=;,9.3代码设计部分,任务9.3任务实施“导航”窗体的代码添加(2)【搜索】按钮单击事件代码如下:,9.3代码设计部分,任务9.3任务实施“导航”窗体的代码添加(3)【推荐】按钮单击事件代码如下:,9.3代码设计部分,任务9.3任务实施“导航”窗体的代码添加(4)【评价】按钮单击事件代码如下:,9.3代码设计部分,任务9.3任务实施“导航”窗体的代码添加(5)【退出】按钮单击事件代码如下:privatevoidbtnEnd_Click(objectsender,EventArgse)Application.Exit();,9.3代码设计部分,任务9.3支撑知识(一)Application类简介Application类具有用于启动和停止应用程序和线程以及处理Windows消息的方法。调用Run以启动当前线程上的应用程序消息循环,并可以选择使某窗体可见。调用Exit或ExitThread来停止消息循环。当您的程序在某个循环中时,调用DoEvents来处理消息。调用AddMessageFilter以向应用程序消息泵添加消息筛选器来监视Windows消息。IMessageFilter使您可以阻止引发某事件或在调用某事件处理程序前执行特殊操作。,9.3代码设计部分,任务9.4“搜索结果”窗体代码实现对“搜索结果”窗体(Frm3)进行代码编写,完成窗体各控件功能。,9.3代码设计部分,任务9.4任务实施“搜索结果”窗体的代码添加(1)类成员定义定义了两个静态变量用来共记录信息:/判断标记publicstaticinti=0;/记录标记publicstaticintLastNum=0;(2)在类体中添加方法dsResult,该方法能够以搜索关键字(来自Frm2的静态变量fileName)查找电影表中符合条件的记录,并且只返回结果中指定行的记录,9.3代码设计部分,任务9.4任务实施“搜索结果”窗体的代码添加(3)在类体中添加方法Max,该方法能够以搜索关键字(来自Frm2的静态变量fileName)查找电影表中符合条件的记录,并且只返回结果中的记录数目(4)窗体Frm3的载入事件代码(5)【第一条】按钮单击事件代码(6)【上一条】按钮单击事件代码(7)【最末条】按钮单击事件代码,9.3代码设计部分,任务9.4任务实施“搜索结果”窗体的代码添加(8)【下一条】按钮单击事件代码(9)【返回】按钮单击事件代码(10)【评价】按钮单击事件代码(11)【退出】按钮单击事件代码,9.3代码设计部分,任务9.4支撑知识(一)数据集(DataSet)数据集是从数据源中检索到的数据在内存中的缓存(数据在内存中的副本),数据集的结果类似于关系数据库的结构。一个数据集可以包含多个数据表。DataSet对象是数据的一种内存驻留表示形式,由于DataSet对象是数据库中检索到的数据在内存中的缓存,因此它支持在断线(脱机)状态下访问数据。DataSet对象由一组DataTable对象组成,它具备存储多个表数据以及表间关系的能力。这些表就存储在DataTable对象中,而表间的关系则用DataRelation对象表示。DataTable对象中包含了DataRow和DataColumn对象,分别存放表中行和列的数据信息。,9.3代码设计部分,任务9.4支撑知识(一)数据集(DataSet)DataSet对象的公开属性,如表9-19所示。,9.3代码设计部分,任务9.4支撑知识(一)数据集(DataSet)DataSet对象的常用方法如表9-20所示。,9.3代码设计部分,任务9.4支撑知识(一)数据集(DataSet)DataTableCollection对象常用的属性如表9-21所示,9.3代码设计部分,任务9.4支撑知识(一)数据集(DataSet)DataTableCollection对象常用方法如表9-22所示。,9.3代码设计部分,任务9.4支撑知识(二)数据适配器(DataAdapter)数据适配器用于在数据源和数据集之间交换数据,这意味着,数据适配器的作用为从数据库将数据读入数据集,然后从数据集将已更改的数据写回数据库。每个数据适配器包含了4个数据命令对象,分别是SelectCommand,UpdateCommand,InsertCommand和DeleteCommand。,9.3代码设计部分,任务9.4支撑知识(二)数据适配器(DataAdapter)数据适配器对象的常见属性,如表9-23所示。,9.3代码设计部分,任务9.4支撑知识(二)数据适配器(DataAdapter)SqlDataAdapter类(重载过DataAdapter基类)的常用方法见表9-24,9.3代码设计部分,任务9.5“评价电影”窗体代码实现对“评价电影”窗体(Frm4)进行代码编写,完成窗体各控件功能。,9.3代码设计部分,任务9.5任务实施“评价电影”窗体的代码添加(1)在类体中添加方法fillDataView,该方法能够以搜索关键字(来自Frm2的静态变量fileName)查找评论表中符合条件的记录,显示在数据网格中(2)窗体Frm4的载入事件代码如下:privatevoidFrm4_Load(objectsender,EventArgse)fillDataView();,9.3代码设计部分,任务9.5任务实施“评价电影”窗体的代码添加(3)【添加】按钮单击事件代码(4)【修改】按钮单击事件代码(5)【删除】按钮单击事件代码(6)【返回】按钮单击事件代码(7)【退出】按钮单击事件代码如下:privatevoidbtnEnd_Click(objectsender,EventArgse)Application.Exit();,9.3代码设计部分,任务9.5支撑知识(一)数据表(DataTable)DataTable类是.NETFramework类库中System.Data命名空间的成员。可以独立创建和使用DataTable,也可以作为DataSet的成员创建和使用,而且DataTable对象也可以与其他.NETFramework对象(包括DataView)一起使用。可以通过DataSet对象的Tables属性来访问DataSet中表的集合。DataTable表示一个内存内关系数据的表,可以独立创建和使用,也可以由其他.NETFramework对象使用,最常见的情况是作为DataSet的成员使用。,9.3代码设计部分,任务9.5支撑知识(一)数据表(DataTable)DataTable类是.NETFramework类库中System.Data命名空间的成员。可以独立创建和使用DataTable,也可以作为DataSet的成员创建和使用,而且DataTable对象也可以与其他.NETFramework对象(包括DataView)一起使用。可以通过DataSet对象的Tables属性来访问DataSet中表的集合。DataTable表示一个内存内关系数据的表,可以独立创建和使用,也可以由其他.NETFramework对象使用,最常见的情况是作为DataSet的成员使用。,9.3代码设计部分,任务9.5支撑知识(一)数据表(DataTable)DataTable中常用的属性如表9-25所示。,9.3代码设计部分,任务9.5支撑知识(一)数据表(DataTable)DataTable中常用的方法如表9-26所示。,9.3代码设计部分,任务9.5支撑知识(二)评论增删改判断机制添加评论时,首先判断给分是否在合适范围(110)数;然后根据当前用户的id和评论的电影编号一起到评价表中查看该用户是否已经对该电影评价过,若评价过返回提示信息;再根据用户输入的电影编号到电影表中查找,是否有对应编号的电影存在,若无此编号电影返回提示信息;最后在都没有返回信息框的情况下,将该条评论记录插入评论表中。,9.3代码设计部分,任务9.5支撑知识(二)评论增删改判断机制删除评论时,首先检查是否填写评论编号,该项在删除操作时必须填写;然后根据当前用户的id和填写的评论编号到评价表中查看是否存在该编号的评价,且评论用户是否是当前id用户,若否则返回提示信息(用户只允许删除其自身给出的评价);若查到有记录,则提示删除,并更新DataGridView视图。修改评论时,首先检查评论编号、电影编号、评论分数是否填写正确;然后根据当前用户的id和评论编号到评价表中查看该用户是否对该电影评价过,若无则返回提示信息,若有则根据新值修改评论记录。,9.3代码设计部分,任务9.6“推荐电影”窗体代码实现对“推荐电影”窗体(Frm5)进行代码编写,完成窗体各控件功能。,9.3代码设计部分,任务9.6任务实施“推荐电影”窗体的代码添加此窗体的代码和“搜索结果”窗体(Frm3)的代码几乎一样,按钮事件代码以及窗体载入事件代码一样,只是调用的查询方法dsResult和Max有差别:(1)方法dsResult,该方法根据推荐机制搜索电影表,搜索符合条件的电影记录,并且只返回结果中指定行的记录(2)在类体中添加方法Max,该方法能够返回符合推荐条件的电影记录的记录数,9.3代码设计部分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 游戏外包委托开发合同协议书模板范本
- 环保汽车新品发布会
- 解读人力资源行业发展趋势
- 2025年疼痛科慢性疼痛综合评估实验考核试题答案及解析
- 2025年中医科针灸疗法应用技能评估试题答案及解析
- 利用食用油成分护肤品创新创业项目商业计划书
- 编程主题夏令营创新创业项目商业计划书
- 休闲食品品牌文化研究与传播路径创新创业项目商业计划书
- 园林植物健康养生产品创新创业项目商业计划书
- 玻纤织布带工上岗考核试卷及答案
- 婚内财产分割协议书模板
- 食品行业采购管理流程及实施细则
- 2025年新版小学语文新课标标准课件
- 《功能高分子材料》课程教学大纲
- 企业反恐防暴安全
- 高标准农田建设项目方案投标文件(技术方案)
- 《大学生求职面试礼仪指南课件》
- 私募股权投资基金(双GP)合作框架协议书范本
- 城市经理人合作合同范本
- 2025年度合伙人股权代持风险防范及解除协议
- 电网工程设备材料信息参考价(2024年第四季度)
评论
0/150
提交评论