Download presentation
Presentation is loading. Please wait.
1
数据库技术
2
第10章 访问方法 VB.NET的数据库管理功能 ADO.NET数据访问接口 数据库应用系统开发工具的使用 数据库应用程序的开发过程
数据库的编辑和查询操作等方法 ADO.NET访问数据库的接口技术; 数据库应用系统访问数据库的方法
3
? 问题提出 什么是数据库应用系统开发工具? 数据库管理系统和数据库应用系统开发工具有什么区别? 数据库应用系统的开发一般可分为几个阶段?
4
10.1 VB.NET数据访问技术 数据访问是指用VB.NET开发应用程序(前端)链接到数据源(后端)访问数据的一种行为。
前端程序负责与用户交互,可以选择数据库中的数据,并将所选择的数据按用户的要求显示出来 数据库系统本身称为后端,后端数据库通常是关系表的集合,为前端程序提供数据。SQL Server就是一个完全地作为后端来管理和运行的关系数据库系统。
5
数据访问接口ADO.NET结构及组件 ADO.NET的结构主要由ADO.NET组件和.NET框架数据提供程序(Framework Data Provider)组成 .NET Framework数据提供程序 Connection Transaction Parameters DataReader DataAdapter SelectCommand InsertCommand UpdateCommand DeleteCommand 数据集 DataTableCollection DataTable DataRowCollection DataColumnCollection ConstraintCollection DataRelationCollection XML 数据库 断开模式: 对数据的读取和操作在断开数据库连接之后,一般使用DataSet对象 Connention对象提供到数据源的连接 连接模式: 对数据的读取和操作在断开数据库连接之前,一般使用DataReader对象
6
10.1.2 ADO.NET核心对象 ADO.NET对象模型包括5个核心对象: Connention对象 Command对象
DataReader对象 DataSet对象 DataAdapter对象
7
10.2 使用数据访问组件访问数据库 应用程序使用ADO.NET访问数据库中的数据,首先需要建立与数据源的连接,再通过SQL语句读取数据库中的数据,并将数据填充到填充到DataSet对象中,就可以通过数据控件向用户显示操作结果。
8
使用ADO.NET访问数据库过程 ADO.NET访问SQL Server数据库时,涉及到多个相关对象,它们是SqlConnection、SqlCommand、SqlDataAdapter、SqlParameter、SqlDataSet等对象,位于System.Data.SqlClient名称空间。
9
使用ADO.NET访问数据库过程 1. 使用SqlConnection连接数据库: Dim sqlcn As SqlConnection '定义SQL Server数据库连接对象 sqlcn = New SqlConnection() sqlcn.ConnectionString = "server=localhost; database=School; User ID=sa; Password=760707lv; " sqlcn.Open() ' 打开连接
10
10.2.1 使用ADO.NET访问数据库过程 2. 使用SqlCommand读取数据:
Dim sqlcmd As SqlCommand' 定义SqlCommand对象sqlcmd sqlcmd = New SqlCommand("Select count(*) as totalStudent From T_Student") ' 设置SQL命令,用于查询学生数量 sqlcmd.Connection = sqlcn ' 设置Connection属性,sqlcn为上面建立的连接对象 Dim rcount As Integer = sqlcmd.ExecuteScalar() ' 执行查询命令并返回一个值
11
10.2.1 使用ADO.NET访问数据库过程 【例10.1】读取数据库School的数据表T_Student的数据,显示学生数量。
在VS中新建工程,在窗体上放置相应控件,设置控件属性 双击“查询”按钮,响应其Click事件 在Click事件中,首先生成数据库连接对象 然后生成查询语句,并设置数据库查询对象的连接属性 执行查询对象,将结果赋给变量,并在窗体中显示 关闭数据库连接对象
12
10.2.1 使用ADO.NET访问数据库过程 3. 使用SqlDataAdapter读取数据填充到数据集:
Dim dsDA As New SqlDataAdapter() ' 声明SqlDataAdapter对象dsDA dsDA.SelectCommand = New SqlCommand() ' 设置SelectCommand属性为SqlCommand dsDA.SelectCommand.Connection = sqlcn ' 设置连接对象(前面已定义的连接对象) dsDA.SelectCommand.CommandText="Select * From T_Student " Dim dsSt As New DataSet() dsDA.Fill(dsSt, "St_info") Fill语句语法:Fill(<数据集对象名>, <数据表名>)
13
10.2.1 使用ADO.NET访问数据库过程 4. 使用DataSet对象存储数据:
DataSet对象是ADO.NET结构核心组件,其作用在于实现独立 于任何数据源的数据访问。 要访问DataSet对象中的数据,可以使用以下方法: <DataSet对象名>.Tables("<数据表名>").Rows(n)("<列名>") 访问DataSet对象dsSt中St_info表第1行的"St_name"列: dsSt.Tables("St_info").Rows(0)("StudentName")) 则可得到值:陈佳迪
14
使用ADO.NET访问数据库过程 【例10.2】使用SqlDataAdapter对象的Fill方法,将数据源的数据传输到客户端,并存储到数据集中。 1. 在窗体Form1中,添加一个数据控件DataGridView1和一个按钮Button1 2. 在窗体声明区和Button1_Click事件中输入代码。 3. 生成数据库连接对象 4. 生成数据适配器对象,设置其连接属性和查询语句 5. 利用数据适配器填充数据集 6. 将数据集设置为表格对象的数据源 7. 设置表格数据源所使用的表 8. 关闭数据库连接对象
15
数据绑定 在设计应用程序界面时,往往需要将从数据库中检索出来的信息显示在界面上。.NET框架提供了一种“数据绑定”技术,可以实现将数据表的某个或者某些字段绑定到WinForm组件(如TextBox组件、ComboBox组件等),即利用这些控件从数据访问组件中得到数据并在控件中自动显示出来。 数据绑定分为两种类型: 简单数据绑定 复杂数据绑定。
16
数据绑定 1. 创建数据源: (1)在VB2013中,在“项目”菜单中,选择“添加新数据源 ”按钮,打开“数据源配置向导”对话框。 (2)在“数据源配置向导”对话框中选择数据源类型为“数 据库”,单击“下一步”按钮,打开“选择数据库模型”对 话框。 (3)在“选择数据库模型”对话框中选择数据库模型“数据 集”,单击“下一步”按钮,打开“选择您的数据连接”对 话框。
17
数据绑定 1. 创建数据源: (4)单击“新建连接”按钮,打开“添加连接”对话框。
18
数据绑定 1. 创建数据源: (5)单击“确定”按钮,返回“数据源配置向导”对话框, 数据连接已配置,单击“下一步”按钮,将连接字符串保存 到应用程序配置文件中。
19
数据绑定 2. 简单数据绑定: 简单数据绑定就是一个控件绑定单个数据字段,每个控件仅显示结果集中的一个字段值。如果在窗体上要显示n项数据,就需要使用n个控件。 VB 2013中大部分的控件都提供了数据绑定功能,最常用的简单数据绑定是将数据绑定到文本框和标签。 要建立数据绑定,需要在设计或运行时对控件的DataBindings属性进行设置。
20
数据绑定 2. 简单数据绑定: 【例10.3】设计一个窗体,创建数据集SchoolDataSet,以浏览School数据库的课程信息表T_Course的数据。 新建项目,为窗体添加相应控件 从工具箱的数据栏中,拖曳一个“BindingNavigator”至窗体,根据10.2.2的方法,添加一个数据集SchoolDataSet 为文本框添加数据绑定。方法是:在文本框的DataBindings属性中,设置其Text属性为数据集中表T_Course的相应列 在窗体的Load事件中,为绑定浏览器设置数据源并填充数据集。 20
21
10.2.2 数据绑定 3. 复杂数据绑定: 复杂数据绑定允许将多个数据元素绑定到一个控件,同时显示记录源中的多行或多列。
数据绑定 3. 复杂数据绑定: 复杂数据绑定允许将多个数据元素绑定到一个控件,同时显示记录源中的多行或多列。 支持复杂数据绑定的控件包括数据网格控件DataGridView、列表框控件ListBox和组合框控件ComboBox等。其中DataGridView控件用于显示任意类型的表格化数据:文本、数字、日期或者数组的内容。 21
22
数据绑定 3. 复杂数据绑定: 【例10.4】设计窗体,在DataGridView控件中显示School数据库的学生信息表T_Student的数据。 新建项目,从工具箱拖一个DataGridView至主窗体 单击DataGridView1右上角的小三角按钮,打开“DataGridView”任务对话框 在“选择数据源”对话框中点击“添加数据源”,依照本节介绍的方法,生成一个新的数据源。需注意,在“数据库对象”对话框中,需选择“T_Student”表。 数据源选择好的,DataGridView1的列将会变为所选数据源中的数据表的相应列。 22
23
数据绑定 3. 复杂数据绑定: 【例10.5】ComboBox控件数据绑定示例。设计窗体Form1,单击窗体上组合框中的学生姓名时,自动获取其学号信息存入文本框中。 创建项目,在主窗体中添加控件,设置外观属性。 设置ComboBox1的DataSource属性,打开其“选择数据源”对话框,按照本节介绍的方法,添加数据源。结束后,会自动生成DataSource,BindingSource,TableAdapter对象。 设置ComboBox1的DisplayMember属性为“StudentName” 设置ComboBox1的ViewMember属性为“StudentCode” 双击ComboBox1,响应其选项更改事件,设置文件框的值为ComboBox1选中项的值。 23
24
10.3 数据库操作 数据库编辑操作 数据查询 24
25
10.3.1 数据库编辑操作 实现数据库的编辑操作可以使用ADO.NET中的一个重要对象SqlCommand。这个对象的使用步骤如下:
数据库编辑操作 实现数据库的编辑操作可以使用ADO.NET中的一个重要对象SqlCommand。这个对象的使用步骤如下: (1)首先要构造一个对数据库进行操作的SQL命令字符串。 (2)将这个SQL命令字符串赋给SqlCommand对象的CommandString属性。 (3)打开与数据库的连接。 (4)执行SqlCommand对象的ExecuteNonQuery方法。ExecuteNonQuery方法执行与UPDATE、INSERT、DELETE等语句有关的操作,返回值是命令影响的行数。 (5)关闭与数据库的连接。 25
26
10.3.1 数据库编辑操作 1.添加记录: 【例10.6】设计窗体Form1,单击“添加记录”按钮,为数据表T_Academy表添加记录。
数据库编辑操作 1.添加记录: 【例10.6】设计窗体Form1,单击“添加记录”按钮,为数据表T_Academy表添加记录。 1. 新建项目,在窗体上添加控件,设置其外观属性。 2. 双击“添加(SQL语句)”按钮,响应其Click事件。 3. 从工具箱拖曳BindingSource至窗体,设置其数据源,注意数据表为T_Academy,系统会自动生成DataSet和TableAdapter对象 4. 双击“添加(控件)”按钮,响应其Click事件。 26
27
10.3.1 数据库编辑操作 2.修改记录: 【例10.7】设计窗体Form1,单击“修改”按钮,为数据表T_Academy表进行记录修改。
数据库编辑操作 2.修改记录: 【例10.7】设计窗体Form1,单击“修改”按钮,为数据表T_Academy表进行记录修改。 新建工程,在窗体中添加控件,设置其外观属性。注意,学院编号是不能修改的,所以设置其Enabled属性为False 2.从工具箱拖曳BindingSource至窗体,设置其数据源,注意数据表为T_Academy 3.将BindingNavigator1的BindingSource属性设置为BindingSource1 4.设置两个文本框的DataBindings的Text属性为BindingSource1的相应字段 5.双击“修改(SQL语句)”按钮,响应其Click事件 6.双击“修改(控件)”按钮,响应其Click事件 27
28
数据库编辑操作 3.删除记录: 删除记录是将当前记录删除并更新数据库。同修改记录一样,可以通过执行SqlCommand对象的SQL命令,或者使用数据控件两种方法实现。 将例10.7的Button1_Click 事件中inStr变量的值修改为以下形式。 inStr= "Delete From T_Academy Where AcadCode='" & Trim(TextBox1.Text) & "'" 将例10.7的Button2_Click事件中的代码用以下代码替代 D_InfoBindingSource.EndEdit() D_InfoTableAdapter.Delete(Trim(TextBox1.Text), Trim(TextBox2.Text)) 28
29
10.3.1 数据库编辑操作 4.记录浏览: 记录的浏览可以通过ADO.NET的导航条按钮操作,
数据库编辑操作 4.记录浏览: 记录的浏览可以通过ADO.NET的导航条按钮操作, 还可以使用BindingSource对象的MoveFirst、MoveLast、MoveNext、MovePrevious方法,分别控制记录指针移动到第一条记录、最后一条记录、下一条记录、前一条记录。 29
30
10.3.1 数据库编辑操作 4.记录浏览: 【例10.8】控制记录指针移动示例。 新建工程,在窗体上添加控件,设置其外观属性。
数据库编辑操作 4.记录浏览: 【例10.8】控制记录指针移动示例。 新建工程,在窗体上添加控件,设置其外观属性。 从工具箱拖曳BindingSource控件至窗体,设置其数据源和DataMember属性。 设置文本框的DataBindings属性。 双击“第一条”、“上一条”、“下一条”、“最后一条”按钮,响应其Click事件。 30
31
数据查询 VB .NET中查询数据库中的数据可以通过Command对象执行SQL Select语句实现,也可以通过数据集对象的Find方法查找符合条件的记录,或者设置数据集对象的Filter属性筛选符合条件的记录来实现: 31
32
10.3.2 数据查询 【例10.9】设计查询窗体,通过输入学生学号、姓名或所在班级名,查找T_Student表中符合条件的学生记录。
数据查询 【例10.9】设计查询窗体,通过输入学生学号、姓名或所在班级名,查找T_Student表中符合条件的学生记录。 新建工程,在窗体上添加控件,设置其外观属性。注意,本题有两个下拉框,ComboBox1用于选择查询项;ComboBox2用于选择班级,它的位置大小与TextBox1(用于输入姓名或学号)重合,其Visible属性默认为False,即不显示,只有当ComboBox1选择为“班级”时,才显示。 2.设置DataGridView1的DataSource属性 3.设置ComboBox2的DataSource、DisplayMember和ValueMember属性 4.双击“ComboBox1”,响应其选项更改事件 5.双击“查询按钮”,响应其Click事件 32
33
10.4 数据库应用系统开发 软件工程 是开发、运行、维护和修正软件的一种系统方法,其目标是提高软件质量和开发效率,降低开发成本。
数据库应用系统开发的一般阶段 可行性分析 需求分析 概要设计 详细设计 代码设计 测试维护 系统交付 33
34
本章小结 数据访问方法 使用数据控件访问数据库 数据库的相关操作
Similar presentations