C#使用ADO进行数据库编程.ppt

上传人:牧羊曲112 文档编号:6502338 上传时间:2023-11-07 格式:PPT 页数:103 大小:1.23MB
返回 下载 相关 举报
C#使用ADO进行数据库编程.ppt_第1页
第1页 / 共103页
C#使用ADO进行数据库编程.ppt_第2页
第2页 / 共103页
C#使用ADO进行数据库编程.ppt_第3页
第3页 / 共103页
C#使用ADO进行数据库编程.ppt_第4页
第4页 / 共103页
C#使用ADO进行数据库编程.ppt_第5页
第5页 / 共103页
点击查看更多>>
资源描述

《C#使用ADO进行数据库编程.ppt》由会员分享,可在线阅读,更多相关《C#使用ADO进行数据库编程.ppt(103页珍藏版)》请在三一办公上搜索。

1、C#程序设计,第9章 使用ADO.NET进行数据库编程,目 录,第9章 使用ADO.NET进行数据库编程,本章以一个简单的访问数据库的Windows应用程序为例,向读者介绍ADO.NET框架的结构,C#数据库访问的常用方法,以及相关数据库访问对象和控件的常用属性和方法。,9.1 概述,微软公司推出的ADO.NET是Microsoft.NET Framework的核心组件,其目的是为了从数据操作中分解出数据访问。ADO.NET的两个核心组件会完成此任务:DataSet(数据集)和.NET Framework数据提供程序,后者是一组包括Connection,Command,DataReader和D

2、ataAdapter对象在内的组件。.NET Framework数据提供程序负责与物理数据源的连接,DataSet代表实际的数据。ADO.NET的结构如图9-1所示。,9.1 概述,9.1 概述,.NET数据提供程序用于连接到数据库,执行命令和查询结果。它为程序开发者处理不同类型的数据库系统提供了不同的程序类。如表9-1所示。,9.1 概述,针对SQL Server的数据提供程序,包含的各种类,见表9-2。,9.1 概述,9.1.1 项目概述9.1.2 数据库设计,9.1.1 项目概述,本章我们要完成一个简单的多窗体的数据库应用程序“电影荐评系统”。该系统要求向登录的用户提供如下功能:1.搜索

3、电影,用户可以输入电影名称关键字,查看系统中包含相应关键字的电影的介绍;2.评价电影,用户可以对感兴趣的或者看过的电影,给出自己的评分和评论;3.推荐电影,向当前登录用户推荐他没看过(没评价过),其他用户评分高的电影。,9.1.1 项目概述,“电影荐评系统”的流程图如图9-2所示。,9.1.2 数据库设计,要完成对电影和电影评价的保存,还要记录登录的用户信息,这个简单的系统需要三张数据表来完成数据的保存。系统的表结构如下:1.filmintro(电影介绍表)表filmintro用于保存系统所有的电影信息,9.1.2 数据库设计,2.users(用户表)表users用于保存系统所有的用户信息,9

4、.1.2 数据库设计,3.scores(电影评价表)表scores用于保存系统所有的评价信息,9.2 窗体设计部分,整个FSS项目,划分成主要的6个任务来完成,首先是窗体的设计,然后是各个窗体代码的完成。C#Winform应用程序的编制步骤,一般是先构建窗体,然后补充窗体上相应控件的事件过程代码,因此我们的讲解也分成两步来进行完成。本节完成对“电影荐评系统”的窗体绘制。该系统包含了5个基本窗体,分别是系统登录窗体、“导航”窗体、“搜索电影”窗体、“评价电影”窗体以及“推荐电影”窗体。,9.2 窗体设计部分,任务9.1 各窗体的设计C#Winform应用程序的编制步骤,一般是先构建窗体,然后补充

5、窗体上相应控件的事件过程代码,因此我们的讲解也分成两步来进行完成。本任务完成对“电影荐评系统”的窗体绘制。该系统包含了5个基本窗体,分别是系统登录窗体、“导航”窗体、“搜索电影”窗体、“评价电影”窗体以及“推荐电影”窗体。,9.2 窗体设计部分,任务9.1 任务实施(一)在Visual Studio中建立Winform项目(1)设置Visual Studio的开发语言环境初次打开Visual Studio 2008如果开发语言不是C#,可以在如果打开的Visual Studio当前针对的开发语言不是C#,那么选择菜单栏里的【工具】|【导入与导出设置(I).】如图9-3,即打开“导入与导出设置向

6、导”对话框,选择【重置所有设置】单选项,单击【下一步】按钮,如图9-4所示。,9.2 窗体设计部分,任务9.1 任务实施(一)在Visual Studio中建立Winform项目(1)设置Visual Studio的开发语言环境,9.2 窗体设计部分,任务9.1 任务实施(一)在Visual Studio中建立Winform项目(2)新建FSS项目选择【文件】|【新建】|【项目】命令,打开“新建项目”对话框,在“模板”区域选择“Windows应用程序”,在“名称”框里输入本项目的名称“FSS”,在“位置”框里设置项目保存的路径,单击“确定”完成项目创建。操作如图9-8所示。,9.2 窗体设计部

7、分,任务9.1 任务实施(一)在Visual Studio中建立Winform项目(2)新建FSS项目,9.2 窗体设计部分,任务9.1 任务实施(一)在Visual Studio中建立Winform项目(2)新建FSS项目建立起项目后的Visual Studio界面,如图9-9所示。,9.2 窗体设计部分,任务9.1 任务实施(二)系统登录窗体模块(1)系统登录模块概述系统登录模块主要用于对进入“电影荐评系统”的用户进行安全性检查,以防止非法用户登录系统。验证用户名和密码,如果是合法用户,则允许登录。系统登录模块窗体布局如图9-10所示。,9.2 窗体设计部分,任务9.1 任务实施(二)系统

8、登录窗体模块(2)图片的插入单击“工具箱”调板中的“PictureBox”控件,再在“Form1.cs设计”窗口中单击,会出现图片框控件pictureBox1。拖动周围的控制点将其缩放到合适大小。选中pictureBox1对象,调出“属性”窗格(【视图】|【属性窗口(W)】命令,快捷键Ctrl+W),修改图片框控件“Image”属性,单击“Image”属性右侧的图标,打开“选择资源”对话框,选择【本地资源】单选按钮,单击【导入】,在打开的对话框中,找到要插入图片框的图片文件,单击【确定】完成图片插入。如图9-11所示。,9.2 窗体设计部分,任务9.1 任务实施(二)系统登录窗体模块(2)图片

9、的插入,9.2 窗体设计部分,任务9.1 任务实施(二)系统登录窗体模块(3)添加其他控件该窗体用到的主要控件如表9-6所示。,9.2 窗体设计部分,任务9.1 任务实施(三)“导航”窗体模块(1)“导航”模块概述“导航”窗体,也就是相当于系统的主窗体,通过主窗体可以快速地了解和使用系统支持的所有功能,使用户能够在最短的时间内掌握软件的使用。当用户通过登录模块成功地登录系统后,会进入系统的“导航”窗体,其界面布局如图9-13所示。,9.2 窗体设计部分,任务9.1 任务实施(三)“导航”窗体模块(1)“导航”模块概述,9.2 窗体设计部分,任务9.1 任务实施(三)“导航”窗体模块(2)添加新

10、的窗体新建的项目中,默认只有一个窗体文件,如果要多个窗体在一个项目中,就需要用户自己添加窗体。打开“解决方案资源管理器”窗格,选中项目名称后,单击右键,在快捷菜单中选择【添加】|【Windows窗体】,在弹出的“添加选项”对话框的“名称”框内输入要添加的窗体名称,默认是Form2,Form3.如图9-14示。,9.2 窗体设计部分,任务9.1 任务实施(三)“导航”窗体模块(2)添加新的窗体,9.2 窗体设计部分,任务9.1 任务实施(三)“导航”窗体模块(3)添加控件该窗体用到的主要控件如表9-7示。,9.2 窗体设计部分,任务9.1 任务实施(四)“搜索电影”窗体模块(1)“搜索电影”模块

11、概述“搜索电影”窗体,能够根据用户在“导航”窗体“搜电影”一栏的文本框中输入的关键字,在数据库的“电影介绍表”中搜索,电影名称含有该关键字的电影,并显示在窗体对应的控件中,“搜索电影”窗体界面布局如图9-15所示。,9.2 窗体设计部分,任务9.1 任务实施(四)“搜索电影”窗体模块(2)窗体的分区从前面两个窗体可以看出,我们系统的窗体中都有明显的“分区”。这里用到了Panel控件,来对窗体分区。从“工具箱”中拖入Panel控件,如图9-16所示。,9.2 窗体设计部分,任务9.1 任务实施(四)“搜索电影”窗体模块(3)添加控件该窗体用到的主要控件如表9-8示。,9.2 窗体设计部分,任务9

12、.1 任务实施(四)“搜索电影”窗体模块(3)添加控件,9.2 窗体设计部分,任务9.1 任务实施(五)“评价电影”窗体模块(1)“评价电影”模块概述“评价电影”窗体,能够根据用户在“导航”窗体“评电影”一栏的文本框中输入的关键字,在数据库的“电影介绍表”中搜索,找到与关键字匹配的电影,如果存在,就把与该电影相关的所有评论显示在“评价电影”窗体的“网格视图”控件中。并允许用户插入、修改、删除相应的评论记录。“评价电影”窗体也允许用户由“搜索电影”窗体或“推荐电影”窗体跳转过来。其界面布局如图9-17所示。,9.2 窗体设计部分,任务9.1 任务实施(五)“评价电影”窗体模块(1)“评价电影”模

13、块概述,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)“推荐电影”模块概述“推荐电影”窗体,能够在“电影评论表”中找出当前登

14、录用户没有评价过的电影,然后根据其他人对电影评分的平均值,按照由高分到低分的原则,向用户列出这些电影的详细介绍信息。窗体结构和“搜索电影”几乎一样,而代码实现逻辑完全不同,其窗体布局如图9-19所示。,9.2 窗体设计部分,任务9.1 任务实施(六)“推荐电影”窗体模块(1)“推荐电影”模块概述,9.2 窗体设计部分,任务9.1 任务实施(六)“推荐电影”窗体模块(2)添加控件该窗体用到的主要控件如表9-10所示。“推荐电影”模块概述,9.2 窗体设计部分,任务9.1 任务实施(六)“推荐电影”窗体模块(2)添加控件,9.2 窗体设计部分,任务9.1 支撑知识(一)DataGridView控件

15、DataGridView 控件是在.NET Framework 2.0 版中新增的,提供一种强大而灵活的以表格形式显示数据的方式。可以使用 DataGridView 控件来显示少量数据的只读视图,也可以对其进行缩放以显示特大数据集的可编辑视图使用 DataGridView 控件,可以显示和编辑来自多种不同类型的数据源的表格数据。将数据绑定到 DataGridView 控件非常简单和直观,在大多数情况下,只需设置 DataSource 属性即可。在绑定到包含多个列表或表的数据源时,只需将 DataMember 属性设置为指定要绑定的列表或表的字符串即可。,9.2 窗体设计部分,任务9.1 支撑知

16、识(一)DataGridView控件,9.2 窗体设计部分,任务9.1 支撑知识(一)DataGridView控件,9.2 窗体设计部分,任务9.1 支撑知识(一)DataGridView控件,9.2 窗体设计部分,任务9.1 支撑知识(二)Panel控件panel是一个服务器端控件,也是一个容器控件。用于包含其它服务器控件或其它内容并控制这些内容的显示时机。在某些场合,这个控件是很有用的。比如在制作一个注册项很多的注册页面时,通常的做法是将所有注册项放在一个页面上,利用panel就可以实现将一个页面的内容分段显示,这样用户在注册时,感觉就好像是在访问多个页面。,9.3 代码设计部分,完成了对

17、五个窗体绘制的工作之后,需要为每个窗体的相关控件,添加事件过程代码,才能让用户通过窗体上的控件,来访问或修改数据库。,9.3 代码设计部分,任务9.2“登录”窗体代码实现完成了对五个窗体绘制的工作之后,需要为每个窗体的相关控件,添加事件过程代码,才能让用户通过窗体上的控件,来访问或修改数据库。,9.3 代码设计部分,任务9.2 任务实施“登录”窗体的代码添加(1)命名空间的引用由于我们访问的数据库是SQL Server,访问数据库相关的数据提供程序对象都包含在命名空间中,在程序的开头要加上对这个命名空间的引用,即:using;否则,每写一个类,都需要把它处在的命名空间情况完整地写出来。,9.3

18、 代码设计部分,任务9.2 任务实施“登录”窗体的代码添加(2)窗体间数据的共享该实验系统采用了最简单的方式来实现不同窗体间的数据共享,即用公共静态变量来办到。公共属性决定了窗体里的该变量能够被其他窗体或模块里的过程调用,静态属性决定了当前窗体关闭后,仍能够保持该变量的值存在。在“登录”窗体Form1的类体中,定义全局静态变量userid,用以标示登录的用户:/定义全局静态变量userid,标示登录的用户 public static string userid;,9.3 代码设计部分,任务9.2 任务实施“登录”窗体的代码添加(3)【登录】按钮事件代码在设计视图中,双击【登录】按钮,为其添加单

19、击事件代码(4)【退出】按钮事件代码如下:private void btnEnd_Click(object sender,EventArgs e)Application.Exit();,9.3 代码设计部分,任务9.2 支撑知识(一)连接(SqlConnection对象)的创建1.连接字符串要实现数据源的连接,首先要引出连接字符串的概念。连接字符串(Connection String)是在连接数据源时所提供的必要的连接信息,其中包括连接的服务器对象、账号、密码和所访问的数据库对象等信息,是进行数据必不可少的信息。一般,一个连接字符串中所包含的信息,9.3 代码设计部分,任务9.2 支撑知识(一

20、)连接(SqlConnection对象)的创建1.连接字符串一个连接字符串中所包含的信息,如表9-14所示。,9.3 代码设计部分,任务9.2 支撑知识(一)连接(SqlConnection对象)的创建2.运行时创建连接要建立连接,就需要新建Connection类的实例,如果数据库是SQL Server,那么就要创建SqlConnection类的实例,当连接对象创立后,紧接着就要对对象的连接字符串属性进行设置。,9.3 代码设计部分,任务9.2 支撑知识(一)连接(SqlConnection对象)的创建3.Connection(连接类)的方法当建立好一个连接对象后,就可以使用已经创建好的这个对

21、象,进行诸如打开、关闭等操作,同时可以针对对象状态的变化而变化对象的操作。连接类SqlConnection主要有以下3个方法:Open()表示打开一个已建立好的连接对象。Close()表示关闭一个已打开的连接对象,将连接释放到服务器的连接池中,以便下次启动相似的连接时能快速地建立连接。Disposed()移出连接,从服务器的连接池中删除连接,以保存服务器资源。,9.3 代码设计部分,任务9.2 支撑知识(二)命令(SqlCommand对象)的创建在连接好数据源后,就可以对数据源执行一些命令操作。命令操作包括从数据存储区(数据库、数据文件等)检索或对数据存储区进行插入、更新、删除操作。在ADO.

22、NET中这些操作都可以通过命令对象来创建。SqlCommand类的实例对象保存的就是要对 SQL Server 数据库执行的一个 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语句可直

23、接对数据库进行处理,当SqlCommand对象执行SQL查询语句之后,会返回一个SqlDataReader对象,它是一个结果集。该结果集是由满足查询条件的所有行组成的集合,它排列成表的形式,可以通过SqlDataReader对象的属性和方法访问SqlDataReader中的数据。但是值得注意的是,SqldataReader对象中的数据只能进行只读、向前的访问。,9.3 代码设计部分,任务9.2 支撑知识(三)结果(SqlDataReader对象)的创建SqlDataReader是实现IDataReader接口的类,若要创建SqlDataReader对象,则必须调用SqlCommand对象的Ex

24、ecuteReader方法,而不能直接调用其构造函数。SqlCommand.ExecuteReader方法执行返回行的命令,它将CommandText发送到Connection,并生成一个SqlDataReader,9.3 代码设计部分,任务9.2 支撑知识(三)结果(SqlDataReader对象)的创建SqlDataReader(数据阅读器)类的常用属性,如表9-17所示。,9.3 代码设计部分,任务9.2 支撑知识(三)结果(SqlDataReader对象)的创建数据阅读器类的常用方法,如表9-18所示。,9.3 代码设计部分,任务9.2 支撑知识(四)验证机制本任务中,是否是合法用户的

25、验证机制是,通过将用户在文本框中输入的用户名和密码作为关键字到数据库的用户表中查询,根据返回的结果是否为空来验证当前用户身份的合法性。返回结果(SqlDataReader对象)为空,说明当前用户非法,弹出相应的对话框提示用户出错;非空,说明当前用户合法,跳转到Form2,并将其用户ID记录在静态全局变量userid中。,9.3 代码设计部分,任务9.2 支撑知识(五)窗体的切换由于窗体本身是以类的形式存在,所以要打开新的窗体,就必须现实例化该窗体类的对象,并调用窗体的Show方法让其显示,对当前窗体则调用Hide方法隐藏起来:Frm2 f2=new Frm2();f2.Show();this.

26、Hide();,9.3 代码设计部分,任务9.3“导航”窗体代码实现对“导航”窗体(Frm2)进行代码编写,完成窗体各控件功能。,9.3 代码设计部分,任务9.3 任务实施“导航”窗体的代码添加(1)窗体间数据的共享该窗体依然采用公共静态变量的方式来完成与其它窗体间数据的共享操作。这里定义了电影名称和电影编号两个变量:/定义全局静态变量fileName,标示搜索的电影名关键字 public static string filmName=;/定义全局静态变量filmid,标示电影编号 public static string filmid=;,9.3 代码设计部分,任务9.3 任务实施“导航”窗

27、体的代码添加(2)【搜索】按钮单击事件代码如下:,9.3 代码设计部分,任务9.3 任务实施“导航”窗体的代码添加(3)【推荐】按钮单击事件代码如下:,9.3 代码设计部分,任务9.3 任务实施“导航”窗体的代码添加(4)【评价】按钮单击事件代码如下:,9.3 代码设计部分,任务9.3 任务实施“导航”窗体的代码添加(5)【退出】按钮单击事件代码如下:private void btnEnd_Click(object sender,EventArgs e)Application.Exit();,9.3 代码设计部分,任务9.3 支撑知识(一)Application类简介Application类具

28、有用于启动和停止应用程序和线程以及处理Windows消息的方法。调用Run 以启动当前线程上的应用程序消息循环,并可以选择使某窗体可见。调用Exit或ExitThread来停止消息循环。当您的程序在某个循环中时,调用DoEvents来处理消息。调用AddMessageFilter以向应用程序消息泵添加消息筛选器来监视Windows消息。IMessageFilter使您可以阻止引发某事件或在调用某事件处理程序前执行特殊操作。,9.3 代码设计部分,任务9.4“搜索结果”窗体代码实现对“搜索结果”窗体(Frm3)进行代码编写,完成窗体各控件功能。,9.3 代码设计部分,任务9.4 任务实施“搜索结

29、果”窗体的代码添加(1)类成员定义定义了两个静态变量用来共记录信息:/判断标记 public static int i=0;/记录标记 public static int LastNum=0;(2)在类体中添加方法dsResult,该方法能够以搜索关键字(来自Frm2的静态变量fileName)查找电影表中符合条件的记录,并且只返回结果中指定行的记录,9.3 代码设计部分,任务9.4 任务实施“搜索结果”窗体的代码添加(3)在类体中添加方法Max,该方法能够以搜索关键字(来自Frm2的静态变量fileName)查找电影表中符合条件的记录,并且只返回结果中的记录数目(4)窗体Frm3的载入事件代

30、码(5)【第一条】按钮单击事件代码(6)【上一条】按钮单击事件代码(7)【最末条】按钮单击事件代码,9.3 代码设计部分,任务9.4 任务实施“搜索结果”窗体的代码添加(8)【下一条】按钮单击事件代码(9)【返回】按钮单击事件代码(10)【评价】按钮单击事件代码(11)【退出】按钮单击事件代码,9.3 代码设计部分,任务9.4 支撑知识(一)数据集(DataSet)数据集是从数据源中检索到的数据在内存中的缓存(数据在内存中的副本),数据集的结果类似于关系数据库的结构。一个数据集可以包含多个数据表。DataSet对象是数据的一种内存驻留表示形式,由于DataSet对象是数据库中检索到的数据在内存

31、中的缓存,因此它支持在断线(脱机)状态下访问数据。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 代码设计部分,

32、任务9.4 支撑知识(一)数据集(DataSet)DataTableCollection对象常用的属性如表9-21所示,9.3 代码设计部分,任务9.4 支撑知识(一)数据集(DataSet)DataTableCollection对象常用方法如表9-22所示。,9.3 代码设计部分,任务9.4 支撑知识(二)数据适配器(DataAdapter)数据适配器用于在数据源和数据集之间交换数据,这意味着,数据适配器的作用为从数据库将数据读入数据集,然后从数据集将已更改的数据写回数据库。每个数据适配器包含了4个数据命令对象,分别是SelectCommand,UpdateCommand,InsertCom

33、mand和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,该方法能够以搜索关

34、键字(来自Frm2的静态变量fileName)查找评论表中符合条件的记录,显示在数据网格中(2)窗体Frm4的载入事件代码如下:private void Frm4_Load(object sender,EventArgs e)fillDataView();,9.3 代码设计部分,任务9.5 任务实施“评价电影”窗体的代码添加(3)【添加】按钮单击事件代码(4)【修改】按钮单击事件代码(5)【删除】按钮单击事件代码(6)【返回】按钮单击事件代码(7)【退出】按钮单击事件代码如下:private void btnEnd_Click(object sender,EventArgs e)Applica

35、tion.Exit();,9.3 代码设计部分,任务9.5 支撑知识(一)数据表(DataTable)DataTable 类是.NET Framework 类库中 System.Data 命名空间的成员。可以独立创建和使用 DataTable,也可以作为 DataSet 的成员创建和使用,而且 DataTable 对象也可以与其他.NET Framework 对象(包括 DataView)一起使用。可以通过 DataSet 对象的 Tables 属性来访问 DataSet 中表的集合。DataTable 表示一个内存内关系数据的表,可以独立创建和使用,也可以由其他.NET Framework

36、对象使用,最常见的情况是作为 DataSet 的成员使用。,9.3 代码设计部分,任务9.5 支撑知识(一)数据表(DataTable)DataTable 类是.NET Framework 类库中 System.Data 命名空间的成员。可以独立创建和使用 DataTable,也可以作为 DataSet 的成员创建和使用,而且 DataTable 对象也可以与其他.NET Framework 对象(包括 DataView)一起使用。可以通过 DataSet 对象的 Tables 属性来访问 DataSet 中表的集合。DataTable 表示一个内存内关系数据的表,可以独立创建和使用,也可以由

37、其他.NET Framework 对象使用,最常见的情况是作为 DataSet 的成员使用。,9.3 代码设计部分,任务9.5 支撑知识(一)数据表(DataTable)DataTable中常用的属性如表9-25所示。,9.3 代码设计部分,任务9.5 支撑知识(一)数据表(DataTable)DataTable中常用的方法如表9-26所示。,9.3 代码设计部分,任务9.5 支撑知识(二)评论增删改判断机制 添加评论时,首先判断给分是否在合适范围(110)数;然后根据当前用户的id和评论的电影编号一起到评价表中查看该用户是否已经对该电影评价过,若评价过返回提示信息;再根据用户输入的电影编号到

38、电影表中查找,是否有对应编号的电影存在,若无此编号电影返回提示信息;最后在都没有返回信息框的情况下,将该条评论记录插入评论表中。,9.3 代码设计部分,任务9.5 支撑知识(二)评论增删改判断机制 删除评论时,首先检查是否填写评论编号,该项在删除操作时必须填写;然后根据当前用户的id和填写的评论编号到评价表中查看是否存在该编号的评价,且评论用户是否是当前id用户,若否则返回提示信息(用户只允许删除其自身给出的评价);若查到有记录,则提示删除,并更新DataGridView视图。修改评论时,首先检查评论编号、电影编号、评论分数是否填写正确;然后根据当前用户的id和评论编号到评价表中查看该用户是否

39、对该电影评价过,若无则返回提示信息,若有则根据新值修改评论记录。,9.3 代码设计部分,任务9.6“推荐电影”窗体代码实现对“推荐电影”窗体(Frm5)进行代码编写,完成窗体各控件功能。,9.3 代码设计部分,任务9.6 任务实施“推荐电影”窗体的代码添加此窗体的代码和“搜索结果”窗体(Frm3)的代码几乎一样,按钮事件代码以及窗体载入事件代码一样,只是调用的查询方法dsResult和Max有差别:(1)方法dsResult,该方法根据推荐机制搜索电影表,搜索符合条件的电影记录,并且只返回结果中指定行的记录(2)在类体中添加方法Max,该方法能够返回符合推荐条件的电影记录的记录数,9.3 代码

40、设计部分,任务9.6 支撑知识(一)推荐机制推荐电影是将用户没有看过的电影推荐给用户,其推荐的机制如下:判断没有看过的电影:在评价表中搜索用户的评价,没有被用户评价过的电影,被认为是用户没有观看过的。排序没有看过的电影:其他用户对这些当前用户没看过的电影都有相应的评分,将每一部电影得到的评分求其平均值,作为给推荐电影排序的依据,按平均评分值由高到低排列这些查询的到的记录返回给用户作为推荐电影。,9.3 代码设计部分,任务9.6 支撑知识(二)SQL查询基础SQL是专门为数据库而建立的操作命令集,是一种功能齐全的数据库语言。表9-27中列举了常用的SQL语句。,9.3 代码设计部分,任务9.6

41、支撑知识(二)SQL查询基础1.查询语句Select 一条典型的Select查询语句的语法格式如下:SELECT select_listINTO new_table_nameFROM table_listWHERE search_conditionsGROUP BY group_by_listHAVING search_conditionsORDER BY order_listASC/DESC,9.3 代码设计部分,任务9.6 支撑知识(二)SQL查询基础2.插入记录语句Insert使用Insert语句可以向表中插入一条记录,该语句的语法格式为INSERT INTO 表名称(字段名)VALUE

42、(字段值)3.修改记录语句Update使用Update语句可更新(修改)表中的数据,该语句的语法格式为:UPDATE 表名称 SET 字段名=值 WHERE 条件4.删除记录语句Delete使用Delete语句可以删除数据表中的指定行,该语句的语法格式为:DELETE FROM 表名称 WHERE 条件,9.3 代码设计部分,任务9.6 支撑知识(三)数据绑定本质上讲,数据绑定指的是一个过程,即在运行时自动为包含数据的结构中的一个或多个窗体控件设置属性的过程。WINDOWS窗体的数据绑定使用户可以轻松绑定到几乎所有包含数据的结构。,9.3 代码设计部分,任务9.6 支撑知识(三)数据绑定在.N

43、ET框架中,Window窗体中的数据绑定是由许多对象联合处理的,主要使用下列对象:数据源。数据源是包含要绑定到用户界面的数据的对象。CurrencyManager:CurrencyManager对象用于跟踪绑定到用户界面的数组、集合或表内的数据的当前位置。PropertyManager:PropertyManager对象负责维护绑定到控件的对象的当前属性。BindingContext:每个Windows窗体都具有一个默认的BindingContext对象,该对象跟踪相应窗体上的所有CurrencyManager和PropertyManager对象。Binding对象用于在控件的单个属性与另一个对象的属性或某个对象列表中当前对象的属性之间创建和维护简单绑定。,9.3 代码设计部分,任务9.6 支撑知识(三)数据绑定表9-28显示了一些比较重要的绑定到特定Windows窗体控件的属性和方法,Thank You!,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号