




已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章 数据库应用开发基础,学习目标 掌握数据库的基础知识、了解相关基本概念 掌握常用的SQL数据操作语句 掌握ADO.NET数据访问技术 了解数据集(DataSet)的使用 了解数据绑定技术,并掌握DataGridView控件的使用,第8章 数据库应用开发基础,学习内容 8.1 VB.NET数据库应用基础 8.2 SQL数据操作语句 8.3 ADO.NET应用基础 8.4 DataSet的建立和使用 8.5 DataSet的数据绑定,8.1 数据库应用基础 基本概念,1. 数据库 数据库(DB):储存在计算机内的、有组织的、可共享的、独立于应用程序的、相互关联的数据集合。 数据模型:数据库的组织形式。 关系模型:用二维表格来表示实体和实体之间的联系。 表由行、列组成 表中的每一行数据称为记录 表中的每一列数据称为字段,同一字段的数据具有相同的数据类型,并具有字段名,实体:客观世界存在的事物在信息世界的反映,8.1 数据库应用基础 基本概念,2. 数据库管理系统 数据库管理系统(DBMS)是一套操纵和管理数据库的大型软件,为用户或应用程序提供使用和维护数据库的方法,包括数据库的建立、查询、更新及各种数据控制操作等。,数据库管理系统是基于数据模型的,基于关系数据模型的称为关系数据库管理系统。,8.1 数据库应用基础 基本概念,3. 数据库系统 数据库系统(DBS)是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬软件和数据资源组成的系统。包括:计算机硬件系统、计算机软件系统、数据库和用户。其中: 软件系统主要包括操作系统、DBMS和应用软件 DBMS是DBS的核心部分 用户一般分为终端用户、程序开发人员和数据库管理员,8.1 数据库应用基础 创建sql数据库,用sql server 创建“个体工商管理”数据库 用户信息表,8.2 SQL数据操作语句 Select语句,SQL:结构化查询语言 Select语句:用于对表中记录进行查询 Select 字段列表 From 表名 Where 条件表达式 Order By 字段列表ASC|DESC 例, (1) 查询“用户信息表”表中的所有记录 Select * From 用户信息表 (2) 查询“用户信息表”表中的所有记录,按“权限”字段排序 Select * From 用户信息表 Order By 权限 (3) 查询“用户信息表”表中普通用户的所有记录 Select * From 用户信息表 Where 权限=普通用户,8.2 SQL数据操作语句 Insert语句,Insert语句:用于在表中添加一条新记录 Insert Into 表名(字段1,字段2) Values(值1,值2) 可以对表中的部分字段进行赋值。例,插入一条记录,该记录只有2个字段被赋值: Insert Into 用户信息表(用户,密码) Values(admin,admin) 若记录所有字段都要赋值,则可以省略表名后面的字段列表,但是字段值的顺序必须与表中字段的顺序一致。例,插入一条记录,该记录的所有字段均被赋值: Insert Into 用户信息表 Values(1,admin,admin,系统管理员),8.2 SQL数据操作语句 Delete语句,Delete语句:用于删除表中指定的记录 Delete From 表名 Where 条件表达式 注意:如果不指定条件,则删除表中全部记录 例, (1) 删除“用户信息表”表中用户名为admin的所有记录: Delete From 用户信息表 Where 用户=admin (2) 删除“用户信息表”表中的所有记录: Delete From 用户信息表,8.2 SQL数据操作语句 Update语句,Update语句:用于修改表中指定的记录 Update 表名 Set 字段1=值1, 字段2=值2,Where 条件表达式 注意:如果不指定条件,则更新表中的所有记录 例, (1) 将“用户信息表”表中“普通用户”的密码更改为vip: Update 用户信息表 Set 密码=vip Where 权限=普通用户 (2) 将“用户信息表”表中所有用户的密码清空: Update 用户信息表 Set 密码=Null,8.3 ADO.NET应用基础介绍,ADO.NET 是.NET Framework下的一种新的数据访问编程模型,同时提供对XML的强大支持。 ADO.NET是Microsoft公司发布的新一代数据存取技术,是一种全新的数据库访问模式,使应用程序的开发人员能方便的访问多种不同的数据源。 ADO.NET提供对Microsoft SQL Server等数据源的一致访问。数据共享应用程序可以使用ADO.NET来连接到数据源,并检索、操作和更新数据。,8.3 ADO.NET应用基础体系结构,ADO.NET包括2个核心组件: DataSet 数据提供程序(Data Provider) Connection Command DataReader DataAdapter,8.3 ADO.NET应用基础体系结构,事务,参数,数据提供程序,数据表,8.3 ADO.NET应用基础 ADO.NET的结构,1. DataSet DataSet:将表的内容以一定的格式缓存在客户端计算机内存中的数据集对象 包含一个DataTable对象集合(DataTableCollection) 包含一个DataRelation对象集合(DataRelationCollection),8.3 ADO.NET应用基础 ADO.NET的结构,2.NET框架数据提供程序: 用于访问不同类型的数据源,.NET框架提供了4个数据提供程序 SQL Server: 使用System.Data.SqlClient命名空间 OLE DB: 使用System.Data.OleDb命名空间 ODBC: 使用System.Data.Odbc命名空间 Oracle: 使用 System.Data.OracleClient命名空间,8.3 ADO.NET应用基础 ADO.NET的结构,数据提供程序的4个核心对象: Connection对象: 建立与特定数据源的连接 Command: 用来执行对数据源进行各种操作的SQL命令 DataReader: 以只能向前的、只读的数据流方式接收Command对象的ExecuteReader方法返回的数据。 DataAdapter: 是DataSet和数据源之间交换数据的桥梁 若访问sql数据库,上述4个对象分别表示为: SQLConnection、SQLCommand、SQLDataReader SQLDataAdapter,数据集(Dataset),SQL Server .NET 数据提供程序,OLE DB .NET 数据提供程序,SQL Server 7.0 (或更高版本),OLEDB 数据源 (ACCESS),SQL Server 7.0 (或更高版本),在连接环境中,只有操作结束后才断开与数据库的连接,SqlConnection,SqlCommand,SqlDataReader,在连接环境中使用ADO.NET,在与数据库断开连接的情况下,数据库资源并不被独占,SqlConnection,数据适配器,数据集,SQL Server 7.0 (或更高版本),在非连接环境中使用ADO.NET,8.3 ADO.NET应用基础 连接数据库,1. 引入与所用数据库相对应的命名空间 在程序文件的开始处引入 访问sql server数据库需引入SqlClient类命名空间 Imports System.Data.SqlClient 2. 确定连接字符串 (连接SQL数据库示例) server=22; database=工商户信息理;UID=sa;Password=123;Trusted_Connection=false,8.3 ADO.NET应用基础 连接数据库,3. 定义SqlConnection对象 Dim 对象名 As New SqlConnection 对象名.ConnectionString = 连接字符串 Dim 对象名 As New SqlConnection(连接字符串) Dim 对象名 As SqlConnection 对象名 = New SqlConnection(连接字符串) 4. SqlConnection对象的常用方法 Open:打开连接字符串中所指定的数据库 SqlConnection对象名.Open() Close:关闭数据库连接,释放SqlConnection对象 SqlConnection对象名.Close(),8.3 ADO.NET应用基础 连接数据库,【例8.1】连接“master.mdf”数据库,8.3 ADO.NET应用基础 连接数据库,在Public Class Form1的前面引入SqlClient类类命名空间,Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click Dim db_connection As String = “server=58sqlexpress; database=工商户信息管理;UID=sa; Password=123;Trusted_Connection=false“ 定义连接字符串 Dim conn As New SqlConnection conn.ConnectionString = db_connection conn.Open() MsgBox(“连接成功“) conn.Close() End Sub,sql 2005的远程连接数据库准备工作,1.开启SQL 2005的远程连接功能 2.在Windows 防火墙中为“SQL Server 2005”创建例外 3.在Windows 防火墙中为“SQLBrowser”创建例外 4.设置SQL 登陆模式(关键) 5.启用sa帐号和修改sa密码 ALTER LOGIN sa ENABLE ; ALTER LOGIN sa WITH PASSWORD = ; 6. 数据库引擎没有启动。 7.检查远程服务器是否启动了sql server 服务。如果没有,则启动。,8.3 ADO.NET应用基础 数据操作,成功连接Sql Server数据库之后,可通过SqlCommand对象和SqlDataReader对象访问数据源的数据。 1. SqlCommand对象:利用所建立的连接,通过SQL语句对数据源执行查询、插入、删除和更新等操作 (1) 定义SqlCommand对象 方法一: Dim 对象名 As New SqlCommand 对象名.CommandText = SQL命令字符串 对象名.Connection = Connection对象名 方法二: Dim 对象名 As New SqlCommand (SQL命令字符串, Connection对象名) 方法三: Dim 对象名 As SqlbCommand 对象名 = New SqlCommand(SQL命令字符串, Connection对象名),8.3 ADO.NET应用基础 数据操作,(2) SqlCommand对象的常用属性 CommandText:获取或设置对数据源执行的SQL语句 Connection:获取或设置OleDbCommand对象使用的OleDbConnection对象的名称 (3) SqlCommand对象的常用方法 ExecuteScalar:对连接对象执行SQL语句,返回结果值 ExecuteNonQuery:对连接对象执行SQL语句,返回受影响的记录数 ExecuteReader:对连接对象执行SQL查询语句,返回一个DataReader对象,例8.2-8.3,Dim db_connection As String = “server=22; database=工商户信息管理;UID=sa; Password=123;Trusted_Connection=false“ 定义连接字符串 Dim conn As New SqlConnection conn.ConnectionString = db_connection conn.Open() Dim cmd As New SqlCommand cmd.CommandText = “delete from 用户信息表where 用户=3200001“ cmd.Connection = conn cmd.ExecuteNonQuery() MsgBox(“已执行数据删除操作!“) conn.Close(),8.3 ADO.NET应用基础 数据操作,【例8.2】删除“用户信息表”中用户为“190031”的记录,Dim db_connection As String = “server=22; database=工商户信息管理;UID=sa; Password=123;Trusted_Connection=false“ 定义连接字符串 Dim conn As New SqlConnection conn.ConnectionString = db_connection conn.Open() Dim data As String data = InputBox(“请输入要删除的用户名:“, “输入用户名“) Dim cmd As New SqlCommand cmd.CommandText = “delete from 用户信息表where 用户=“ & data & “ cmd.Connection = conn cmd.ExecuteNonQuery() MsgBox(“已执行数据删除操作!“) conn.Close(),8.3 ADO.NET应用基础 数据操作,【说明】如果要删除指定的记录,程序如下:,8.3 ADO.NET应用基础 数据操作,2. SqlDataReader对象:与数据库连接并执行查询命令后,通过SqlDataReader对象得到只读、只进的数据流 (1) SqlDataReader对象的常用属性和方法 HasRows属性:判断当前数据集是否包含数据。如果有数据,该属性值为true,否则为false。 Read方法:用于读取记录。每调用一次该方法,则从结果集中读取一条记录,同时隐含的记录指针自动前进到下一条记录。该方法在读到数据时返回true,数据读完后返回false 。 Close方法:关闭SqlDataReader对象。,8.3 ADO.NET应用基础 数据操作,(2) 定义SqlDataReader对象 Dim 对象名 As SqlDataReader (3) 创建SqlDataReader对象 建立与数据库的连接 通过SqlCommand对象对数据库执行查询命令 调用SqlCommand对象的ExecuteReader方法 【例8.3】单击“显示数据”按钮可在列表框中显示“用户信息表”中的用户名和权限,Dim db_connection As String = “server=22; database=工商户信息管理;UID=sa; Password=123;Trusted_Connection=false“ 定义连接字符串 Dim conn As New SqlConnection conn.ConnectionString = db_connection conn.Open() Dim cmd As New SqlCommand cmd.CommandText = “select * from 用户信息表“ cmd.Connection = conn Dim reader As SqlDataReader reader = cmd.ExecuteReader() If reader.HasRows() Then While reader.Read ListBox1.Items.Add(reader(“用户“) & reader(“权限“) End While End If reader.Close() conn.Close(),8.3 ADO.NET应用基础 数据操作,数据操作的各对象与其方法和属性,返回一个DataReader对象,属性:HasRow,方法,close,read,8.3 ADO.NET应用基础 综合应用实例,【例8.4】“用户管理”用于维护数据库中的“用户信息表”,除了显示用户信息外,还可以实现记录的添加、更新、删除等操作。,窗体中用到的主要控件的名称、类型、特定属性设置和作用见教材表8-3。,8.4 DataSet 创建DataSet对象,定义DataSet对象 Dim 对象名 As DataSet 对象名 = New DataSet() Dim 对象名 As New DataSet() 例如,创建一个名为userDS的DataSet对象: Dim userDS As New DataSet() Clear()方法:清除数据集中的数据。 例如,清除名为userDS的DataSet对象中的所有数据: userDS.Clear(),8.4 DataSet 创建SqlDataAdapter对象,定义SqlDataAdapter对象 Dim 对象名 As SqlDataAdapter 例,Dim adapt As SqlDataAdapter SqlbDataAdapter对象实例化 SqlDataAdapter对象名 = New SqlDataAdapter(SQL语句串, SqlConnection对象名),SqlDataAdapter对象的常用方法 Fill方法:将SqlDataAdapter对象获取的数据填充到 已经定义的DataSet中。 SqlDataAdapter对象名.Fill(DataSet对象名, “DataSet表名“) “DataSet表名”可以与数据源中的表不同名。 Update方法:将DataSet中修改的数据写回数据源 OleDbDataAdapter对象名.Update(DataSet对象名, “DataSet表名“),建立dataset数据集过程,SqlConnection,数据适配器(sqlDataAdapter),数据集sqldataset,SQL Server 7.0 (或更高版本),Dim db_connection As String = “server=22; database=工商户信息管理;UID=sa; Password=123;Trusted_Connection=false“ 定义连接字符串 Dim conn As New SqlConnection conn.ConnectionString = db_connection conn.Open(),Dim adapt As SqlDataAdapter Dim cmdText As String = “Select * From 用户信息表“ adapt = New SqlDataAdapter(cmdText, conn),Dim userDS As New DataSet() 创建DataSet对象 adapt.Fill(userDS, “UserTable“) 填充DataSet,8.4 DataSet 创建DataSet对象,Tables属性:访问DataSet中的表数据 Rows属性:访问该表的行数据 Item属性:用于访问指定列中的数据 Count属性:用于获取数据的总行数 例如, userDS.Tables(“UserTable”).Rows(i).Item(1) (列号可用字段名代替)上面的语句可以写成: userDS.Tables(“UserTable“).Rows(i).Item(“用户“),8.4 DataSet 填充DataSet示例,【例8.5】通过SqlDataAdapter对象将“个体工商管理.mdb”数据库中的“用户信息表”填充到DataSet。,Dim db_connection As String = “server=22; database=工商户信息管理;UID=sa; Password=123;Trusted_Connection=false“ 定义连接字符串 Dim conn As New SqlConnection conn.ConnectionString = db_connection conn.Open() Dim adapt As SqlDataAdapter Dim cmdText As String = “Select * From 用户信息表“ adapt = New SqlDataAdapter(cmdText, conn) Dim userDS As New DataSet() 创建DataSet对象 adapt.Fill(userDS, “UserTable“) 填充DataSet Dim i As Integer ListBox1.Items.Add(“用户名“ & “权限“) ListBox1.Items.Add(“-“) For i = 1 To userDS.Tables(“UserTable“).Rows.Count - 1 ListBox1.Items.Add(userDS.Tables(“UserTable“).Rows(i).Item(“用户“) & “ “ & userDS.Tables(“UserTable“).Rows(i).Item(“权限“) Next conn.Close(),8.4 DataSet 填充DataSet示例,数据集中,表的行号从0开始,因此循环语句的终值是“.Count 1”,8.5 DataSet的数据绑定,数据绑定:通过属性设置,使控件能从数据源中得到数据,从而能通过窗体来显示和处理这些数据。 绑定的类型:简单数据绑定和复杂数据绑定 简单绑定:将控件绑定到表的某一个字段 复杂绑定:将一个控件绑定到表的多个字段 在VS.NET 2005中,可与DataSet进行复杂数据绑定的常用控件是DataGridView。,8.5 DataSet的数据绑定 复杂绑定,DataGridView:一个多行多列数据绑定控件,以表格的形式显示DataSet中的数据,可以对DataSet的记录进行浏览、增加、删除、修改等操作。 1. DataGridView控件的常用属性 DataSource:获取或设置DataGridView控件所绑定的 数据源 DataMember:获取或设置数据源中的表对象名称 ReadOnly:表示或设置DataGridView控件的只读状态,默认为False。,8.5 DataSet的数据绑定 复杂绑定,1. 在程序运行时进行数据绑定设置 【例8.6】窗体装入时,在DataGridView控件中显示填充到 DataSet的“用户信息表”。,在窗体上添加1个DataGridView控件,Imports System.Data.sqlclient 引入 sqlclient 类命名空间 Public Class Form1 Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated Dim conn As New OleDbConnection(“ server=22; database=工商户信息管理;UID=sa; Password=123;Trusted_Connection=false “) conn.Open() 定义OleDbDataAdapter对象,并实例化 Dim cmdText As String = “Select * From 用户信息表“ Dim adapt As New sqlDataAdapter(cmdText, conn) Dim userDS As New DataSet() 创建DataSet对象 adapt.Fill(userDS, “UserTable“) 填充DataSet 绑定数据 DataGridView1.DataSource = userDS DataGridView1.DataMember = “UserTable“ DataGridView1.ReadOnly = True conn.Close() End Sub,代码如下:,2. 通过向导在设计时进行数据绑定设置(课本自学) 3.在设计时进行数据绑定 操作步骤如下 方法(一): 1.创建数据连接和数据适配器 添加“工具箱” -“数据”-” SqlDataAdapter”对象,数据适配器的向导将自动,最终获得数据连接sqlconnection和数据适配器SqlDataAdapter 2 生成数据集 选择“数据”菜单“生成数据集”,获得数据集“dataset11” 3添加并绑定datagridview控件 Datasource属性设置为“dataset11” Datamember设置为要显示的表 4 填充数据集 SqlDataAdapter1.Fill(用户信息表DataSet1) 5 更新数据库 SqlDataAdapter1.update(用户信息表DataSet1),方法(二) 1.创建项目数据连接 工具-连接到数据库 2 创建项目数据源 选择“数据”菜单“添加数据源”,获得数据集 3添加并绑定datagridview控件 Datasource属性设置为“dataset11” Datamember设置为要显示的表 4 填充数据集 SqlDataAdapter1.Fill(用户信息表DataSet1) 5 更新数据库 SqlDataAdapter1.update(用户信息表DataSet1),8.5 DataSet的数据绑定 简单绑定,支持简单绑定的控件主要有TextBox和Label等只显示单个值的控件。 1. 用代码进行绑定 控件名.DataBindings.Add(New Binding(属性, DataSet对象名, 数据成员) 例,将TextBox1控件的Text属性绑定到userDS数据集的UserTable表的“用户”字段: TextBox1.DataBindings.Add(New Binding(“text“, userDS, “UserTable.用户“),2.图形化方式: 选中绑定的控件,如文本框 展开 DataBindings 属性 选择要绑定的属性,如 Text 属性 选择要绑定的数据源 选择要绑定的数据元素,简单数据绑定 - TextBox,8.5 DataSet的数据绑定 简单绑定,【例8.8】窗体装入时,以只读形式显示填充到DataSet的“用户信息表”的“用户名”和“权限”字段,并通过增加的导航按钮实现数据导航。,8.5 DataSet的数据绑定 简单绑定,数据导航的设置(使用BindingManagerBase) (1) 创建BindingManagerBase对象 Dim 对象名 As BindingManagerBase 具体实现需要BindingContext对象来完成: BindingManagerBase对象名 = BindingContext(DataSet对象名, “DataSet表名“) 例, (2) BindingManagerBase的常用属性 Position:获取或设置当前数据指针 表中第1条记录的Position属性值为0 Count:获取表中所包含的记录总数 表中最后一条的Position属性值为Count-1,8.5 DataSet的数据绑定 简单绑定,程序代码: (1) 在Public Class Form1的前面输入如下语句: (2) 由于多个事件过程都使用BindingManagerBase对象,所以在窗体声明段定义该对象:,Imports System.Data.SqlClient,Dim bind As BindingManagerBase,8.5 DataSet的数据绑定 简单绑定,(3) 窗体装入(Load)事件过程 :,Private Sub 简单绑定2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim db_connection As String = “server=22; database=工商户信息管理;UID=sa; Password=123;Trusted_Connection=false“ 定义连接字符串 Dim conn As New SqlConnection conn.ConnectionString = db_connection conn.Open() Dim adapt As SqlDataAdapter Dim cmdText As String = “Select * From 用户信息表“ adapt = New SqlDataAdapter(cmdText, conn) Dim userDS As New DataSet() 创建DataSet对象 adapt.Fill(userDS, “UserTable“) 填充DataSet conn.Close() TextBox1.DataBindings.Add(New Binding(“text“, userDS, “UserTable.用户“) TextBox2.DataBindings.Add(New Binding(“text“, userDS, “UserTable.权限“) bind = BindingContext(userDS, “UserTable“) End Sub,(4) 各导航按钮的单击事件过程:,“第一条”按钮代码: bind.Position = 0 “下一条”按钮代码 If bind.Position = bind.Count - 1 Then MsgBox(“已经是最后一条记录
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 骨科护理考试题及答案
- 校准基础知识培训课件
- 2025年福建平潭综合实验区文旅发展集团有限公司招聘考试笔试试题(含答案)
- 装饰装修工程施工技术考核试题题库及答案
- 专业技能培训天车工考试题及答案
- 医院感染暴发报告及处置管理规范试题与答案
- 静脉输液理论知识培训考核试题(附答案)
- 2025医院医疗卫生法律法规考试题库及答案
- (50题)A特种设备相关管理(A4电梯)新版试题及答案
- 2025年护理三基知识考试必考题库附答案
- 23CG60 预制桩桩顶机械连接(螺丝紧固式)
- 几何中种动角问题的两种考法(含答案解析)人教版七年级数学上册提分必刷
- 中国银行中银国际证券股份有限公司2023年校园招聘111人笔试历年难、易错考点试题含答案解析-1
- 2017版银皮书(中英文完整版)FIDIC设计采购施工交钥匙项目合同条件
- 物业承接查验操作指南
- 蒋小华-问题分析与解决
- 矿泉水智能制造系统
- 燃烧器控制器LMG说明书
- 游泳初级教员资格考试题库(含答案)
- GB/T 250-2008纺织品色牢度试验评定变色用灰色样卡
- GB/T 16919-1997食用螺旋藻粉
评论
0/150
提交评论