ADONET数据库访问技术
实验四 ADONET数据访问技术

实验四 数据访问技术一、实验名称数据访问技术二、实验目的1、了解与有关的命名空间。
2、掌握使用Connection对象连接服务器上数据库的方法。
3、掌握使用Command对象执行数据库访问命令的方法。
4、掌握DataReader对象和DataAdapter对象的使用方法。
5、掌握DataSet对象的使用方法。
三、实验内容在SQL Server 2000数据库管理系统中建立名称为“jxgl”的数据库,在该数据库中建立一个名称为“student”的关系表,其结构如图4-1所示,完成下列题目:图4-1 “tudent”关系表的结构1、编程实现按所在系查询学生信息。
要求查询条件所在系从键盘上输入,编程中要求用到Connection对象、Command对象和DataReader对象。
2、编程实现向“student”关系表中插入一条学生记录,并显示插入后“student”关系表中所有记录。
要求学生记录从键盘上输入,编程中要求用到Connection对象、DataAdapter对象和DataSet 对象。
四、编程提示1、连接SQL Server2000数据库要使用SqlConnection类的对象来完成,其代码如下。
SqlConnection conn = new SqlConnection();conn.ConnectionString = "Password=123456;Persist Security Info=True;User ID=sa;InitialCatalog=jxgl;Data Source=JSJX"; //JSJX是SQL Server2000数据库服务器名。
conn.Open();2、利用Command对象和DataReader对象实现查询的主要代码如下。
SqlCommand comm = conn.CreateCommand();comm.Connection = conn;mandText = "select * from student where 所在系='"+StrSzx+"'"; // StrSzx存储要查询的系名SqlDataReader dr = comm.ExecuteReader();if (dr.HasRows){while (dr.Read())Console.WriteLine(dr[0]+" "+dr[1]+" "+dr[2]+" "+dr[3]+" "+dr[4]);}elseConsole.WriteLine("对不起,没有你要查询的记录!");3、利用DataAdapter对象和DataSet对象实现插入的主要代码如下。
第7章 ADO NET数据库访问技术

5
3.选“数据库”→“下一步” 4.“新建连接” → “更改”
6
5.数据源选“Microsoft Access数据库文件”→“确定” 6.“浏览” →选数据库文件→“确定” →“下一步”
7
7. 选“是”将数据文件复制到项目中 8.单击 ”下一步”,将连接字符串保存到应用程序配 置文件中。
8
9. 在如图7-12所示的“选择数据库对象”对话框中, 选中“会员表”,并单击 【完成】按钮。
19
的基本组件
的基本组件
DataSet
.NET 框架数据提供程序
核心对象
Connection
Command
DataReader
DataAdapter
20
访问数据库的方式:
(1)利用DataReader对象,这种方式只能读取数据库,不能 修改记录。 (2)利用DataAdapter和DataSet对象,这种方式更灵活,可 对数据库进行各种操作。
30
7.4.3 DataReader对象
DataReader(数据读取器)主要应用在有连接的数据应用场合, 它提供了快速的、只读的、仅向前的数据访问方式。
31
DataReader对象的 常用属性: HasRows:是否含有一行或多行的值 FieldCount :当前行中的字段(列)数 DataReader对象的常用方法: Close :用于关闭 DataReader 对象 Read:使 DataReader 前移到下一个记录,返回值为 true 或 false DataReader对象的创建格式: SqlDataReader 对象名 = SqlCommand对象.ExecuteReader(); 如:SqlDataReader dr = mycommand.ExecuteReader();
ADONET数据访问技术(1)

SQL Server 7→ SQL Server 2000→ SQL Server 2005→ SQL Server 2021→ SQL Server 2021
SQL Server2005版本: SQL Server 2005 Enterprise Edition〔X86/X64〕——企业版 SQL Server 2005 Standard Edition〔 X86/X64 〕——标准版 SQL Server 2005 Workgroup Edition〔 X86〕——工作组版 SQL Server 2005 Developer Edition〔 X86/X64 〕——开发版 SQL Server 2005 Express Edition〔 X86〕——学习版
9.2.1 简介 是在.NET Framework上访问数据 库的一组类库,它利用.NET Data Provider〔数据 提供程序〕以进行数据库的连接与访问。 通过ADO .NET,数据库程序设计人员能够很 轻易地使用各种对象来访问符合自己需求的数据库
内容。
21
9.2.2 体系结构
第9章 数据访问技术
ActiveX Data Objects〔ADO〕是Microsoft开发的面向对 象的数据访问库,目前已经得到了广泛的应用。 而那么是ADO的后续技术。但并不 是ADO的简单升级,而是有非常大的改进。 利用,程序员可以非常简单而快速地访问各种 数据库,如SQL Server数据库。
18
【例9.8】 查询每个班每门课程的平均分。
SELECT student.班号,score.课程名,AVG(score.分数) AS '平均分' FROM student,score WHERE student.学号=score.学号 GROUP BY student.班号,score.课程名
ADO.NET数据访问技术

数据访问技术数据访问技术就是将C#和MSSQLl连接起来的纽带可以通过将内存中的临时数据写⼊到数据库中,也可以将数据库中的数据提取到内存中供程序调⽤。
是所有数据访问技术的基础。
使⽤⼀些ADO对象,如Connection和Command对象,也引⼊了⼀些新对象。
关键的新对象包括DataSet,DataReader,和DataAdapter。
Connections. ⽤于连接和管理针对数据库的事务。
Commands. ⽤于发出针对数据库的SQL指令。
DataReaders. ⽤于从SQL Server数据源读取只进流的数据记录。
DataSets. ⽤于针对结构型数据,XML数据和关系型数据的存储,远程处理和编程。
DataAdapters. ⽤于推送数据到DataSet,并针对数据库协调数据。
ConnectionsConnections⽤于和数据库“沟通”,并且被声明为特定的提供程序级别,例如SQLConnection。
Commands扫描连接然后结果集以流的形式被返回,这种流可以被DataReader对象读取,或者推⼊DataSet对象。
下⾯的例⼦演⽰了如何创建⼀个连接对象。
Connections可以通过调⽤Open⽅法被显式打开1 SqlConnection conn = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123");数据库连接字符串server=连接的数据库;database=连接数据库中国的那个表;user=⽤户名;pwd=密码CommandsCommands包含提交到数据库的信息,特定于提供程序的类⽐如SQLCommand。
⼀个命令可以是⼀个存储过程调⽤,⼀个UPDATE语句,或者⼀个返回结果的语句。
你也可以使⽤输⼊和输出参数,返回值作为命令的⼀部分。
下⾯的⽰例演⽰了如何对数据库执⾏⼀条insert(⽆返回值)语句和update(有返回值)语句。
ADO.NET数据库访问技术

数据库访问技术⼀. 的定义来源于COM组件库ADO(即ActiveX Data Objects),是微软公司新⼀代.NET数据库的访问模型,是⽬前数据库程序设计⼈员⽤来开发基于.NET的数据库应⽤程序的主要接⼝。
它利⽤.NET Data Provider(数据提供程序)进⾏数据库的连接和访问,通过数据库程序能够使⽤各种对象来访问符合条件的数据库内容,让提供数据库管理系统的各个⼚商可以根据此标准开放对应的.NET Data Provider,这样设计数据库应⽤程序⼈员不必了解各类数据库底层运作的细节,只要掌握所提供对象的模型,便可访问所有⽀持.NET Data Provider的数据库。
结构模型如下所⽰:图1. 结构模型是⼀个类库,这些类提供了很多的对象,可⽤于完成数据库连接和增删查改等操作。
其中包括如下五个对象: 1)Connection:⽤来连接数据库(SQL Server使⽤的是SqlConnection对象); 2)Command:⽤来对数据库执⾏SQL命令,如增删查改等操作; 3)DataReader:⽤来从数据库中返回只读数据,⽤数据源填充DataSet对象; 4)DataAdapter:与DataSet对象相结合使⽤,实现对数据库的控制; 5)DataSet:可看作离线时内存中的数据库;这五个对象提供了两种读取数据库的⽅式;第⼀种⽅式:使⽤Connection、Command、DataReader,其权限只能读取或查询数据库;第⼆种⽅式:使⽤Connection、Command、DataAdapter、DataSet,其权限能进⾏各种数据库的操作。
读取数据库操作⽰意图:图1. 结构模型⼆. 使⽤在线访问数据库的步骤(这⾥⽤的是SQL Server 数据库)1. 连接数据库直接上⼀段代码:using System.Data.SqlClient;string source = "server=(local); integrated security=SSPI; database=myDateabase;User ID=sa;pwd=sa";SqlConnection conn = new SqlConnection(source);conn.Open();// 对数据库数据进⾏操作conn.Close();(1). ⾸先添加命名空间System.Data.SqlClient;(2). 定义数据库连接字符串:第⼀种⽅法:直接把数据库连接字符串存放在字符串对象中,如上代码所⽰;第⼆种⽅法Web:将数据库连接信息存放在web.config配置⽂件中,然后通过使⽤ConfigurationStringSettings类进⾏调⽤。
ado_dot_net_数据库访问技术

• 2、实现步骤
① 向系统中添加一个页面,界面设计如图所示 ② 在代码文件的头部,添加操作数据库所用到的命名空间 ③ 为“提交”按钮编程
系统界面设计1:留言板页面
编辑留言页面功能的实现
1、模块设计
功能:对数据库中留言内容进行修改、删除操作。 界面设计:如图 主要逻辑: 在Page_Load事件中,显示要编辑的留言; 在单击“更改”按钮时,对数据库中满足条件的数据进行更改; 并显示结果; 在单击“删除”按钮时,对数据库中满足条件的数据进行删除; 并显示结果;
常用方法: • Close() • Read()
训练任务
对留言板系统功能进行完善
要求: 只有合法用户才能进入系统留言 只有系统管理员才可以编辑数据
Connection
常用属性: • ConnectionString 常用方法: • Open(); • Close();
Command
常用属性: • CommandText • Connection 常用方法: • ExecuteNonQuery() • ExecuteReader()
DataReader
2、实现步骤:
① 向系统中添加一个页面;界面设计如图 ② 在代码文件的头部,添加操作数据库用到的命名空间; ③ 为Page_Load事件、更改和删除事件编程
系统界面设计2:留言板编辑页面
总结
• 通过留言板页面学习: 掌握了Connection对象以及Command对 象的功能、属性和方法; • 通过留言板编辑页面的学习: 掌握了DataReader对象,进一步加深了 对Connection对象以及Command对象的理 解;
• 是基于XML的一种全新的数据库访问技术,它和传统ado相比, 其核心主要是:
数据库访问技术ADO

构架
1. 与相关的命名空间 命名空间是多个对象的逻辑分组,使用命名空 间的目的在于防止程序集中出现命名冲突。
2. 对象模型
数据集
SQL Server .NET 数据提供程序
OLE DB .NET 数据提供程序
SQL Server 7.0 (或更高版本)
OLEDB 数据源 (SQL Server 6.5)
组成对象模型的类
连接环境中使用的对象 非连接环境中使用的对象
Connection:表示与数据源的连接。
Command:表示对数据库的查询、对存储过
程的调用或用来返回特定表的内容的直接请 求 DataReader:读取记录,检索和检查由查询 返回的行 Transaction:把许多对数据库的更改组合在 一起,并把它们当作独立的工作单元 Parameter:参数化查询方法
在连接环境中,只有操 作结束后才断开与数据 库的连接 1. 打开连接 2. 执行命令 3. 从 DataReader 中读 取数据 4. 关闭 DataReader 5. 断开连接
SQL Server 7.0 (或更高版本)
5.
在非连接环境中使用
数据集
数据适配器
SqlConnection
数据库访问技术
技术定位
1.
支持下列的存储类型 无结构 有结构, 无层次的数据
以逗号分离的数据 (CSV) 文件、 Microsoft Excel 电子 表格、Microsoft Exchange 文件、Active Directory 文 件等 XML 文档等 SQL Server、Oracle、Access 等
有层次的数据
关系型数据库
第8章ADONET数据访问技术

❖ web.config文件中有了连接字符串后,就可以从 web.config中读取连接字符串。需要使用 System.Configuration.ConfigurationManager类 读取连接字符串。代码如下:
string strCnn= ConfigurationManager.ConnectionStrings ["StudentCnnString"].ConnectionString; //读取连接字符串 SqlConnection cnn = new SqlConnection(strCnn); //定义连接对象 为了使上述代码正常工作,必须使用 using System.Configuration语句引入命名空间。
2.创建数据库连接
➢操作数据库的第一步是建立与数据库的连接,因此首 先要创建SqlConnection对象。要创建SqlConnection对 象必须先了解SqlConnection对象的常用属性和方法。
SqlConnection对象的常用属性
属性
说明
ConnectionString 取得和设置连接字符串
CommandType
获取或设置命令类型,可取的值:CommandType.Text、 CommandType.StoredProduce或 CommandType.TableDirect,分别对应SQL命令、存储过 程或数据表名称,默认为Text。
Connection
获取或设置SqlCommand对象所使用的数据连接属性
或其 它应用程序
Web窗体
Windows 窗体
其它
8.2 连接模式数据库访问
❖ 使用SqlConnection对象连接数据库 ❖ 使用SqlCommand对象执行数据库命令 ❖ 使用SqlDataReader读取数据 ❖ 为SqlCommand传递参数 ❖ 使用SqlCommand执行存储过程 ❖ 使用事务处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11.2 概述
是一组公开数据访问服务的类, 是ADO(ActiveX Data Objects)的重大改进,由于它们 是在.NET编程环境下使用的,因而称为。 是.NET Compact Framework的组成部分, 提供了对关系数据、XML文档和应用程序数据的访问 能力,支持各种开发需求,包括创建应用程序、工具、 语言或Internet浏览器使用的数据库客户端应用程序和 中间层业务对象。数据库访问技术的发展历程专用于特 定数据库系统的函数组 ODBC ADO
学生。
11.4 对象及其编程
1.Connection对象及其使用
【例11-01】 编写一个用来测试连接的应用 程序,用来建立与当前目录下的Microsoft SQL2000数据库Student.mdb的连接。程 序的设置界面如图11-3所示,程序的运行 界面如图11-4所示。
图11-3 程序设计界面
使用开发数据库应用程序的一般步骤:
(1)根据使用的数据源,确定使用的.NET Framework 数据提供程序;
(2)建立与数据源的连接,需使用Connection对象; (3)执行对数据源的操作命令,通常是SQL命令,需使
用Command对象; (4)使用数据集对获得的数据进行操作,需使用
常用类和对象
提供者对象 Connection Command Command Builder DataReader DataAdapter
用户对象 DataSet DataTable DataRow DataTable DataRelation
提供者对象专用于某一种类型的数据源,完成数 据源中实际的读取和写入工作;用户对象则将数据库 中的数据读入到内存中的某个对象中,通过该内存对 象实现数据的访问和操纵。
NET Framework数据提供程序
(1)SQL Server .NET数据提供程序
(2)OLE DB .NET数据提供程序 (3).NET数据提供程序模型的核心对象
.NET数据提供程序提供了四个核心对 象,分别是Connection、Command、 DataReader和DataAdapter 对象。
例如,有语句: Select 学号,姓名,年级 from 学生 Where 专业="
自动化" 其作用是“列出自动化专业的全部学生的学号、姓
名和年级。” 又如,有语句: SELECT 学生.学号,学生.姓名,必修课成绩.课号,必
修课成绩.成绩 FROM 学生,必修课成绩 WHERE 学生.学号=必修
课成绩.学号 其作用是“查询出所有学生的必修课的学习情况,
查询结果中包含学号、姓名、课号和成绩。
2.插入记录
[格式]:INSERT INTO 表名[(字段名1 [, 字段名2, …])] VALUES (表达式1 [,表达式2,…])
例如,有下列语句: INSERT INTO 学生(学号,姓名,专业) VALUES("040501","朱 碧春","计算机软件") 其功能是向“学生”表中插入一条记录,并给学号、姓 名和专业字段赋值。
(4)向DataSet对象中添加行 (5)从DataSet对象中删除行 (6)修改DataSet对象中的数据 (7)利用DataSet对象更新数据源
11.5 利用ADO .NET控件编写数据库应用程序 1.ADO .NET数据控件
数据控件
• 【例11-5】 已知在应用程序当前目录下, 有一个名为Student.mdb的数据库,该数 据库中有一个名为student的表。请编写一 个程序用来从该表中读取所有女生的数据, 并显示出来。
• 【例11-03】 已知在应用程序当前目录下 ,有一个名为Student.mdb的数据库,该 数据库中有一个名为student的表。请编写 一个程序用来从该表中读取所有男生的数 据,并显示出来。程序的设计界面如图117所示,程序的运行界面如图11-8所示。程 序运行时单击【连接并读取】按钮,将会 把所有男生的数据显示在窗体上。
(2)DataReader对象的常用方法 Read方法 [格式]:public bool Read(); NextResult方法 [格式]:public bool NextResult(); Close方法 [格式]:public void Close(); Get×××方法 [格式]:public ××× Get××× (int ordinal);
4 赵六 18
插入后,student表中的内容如图11-6所示。
图11-5 插入前的student表中的数据 图11-6 插入后的student表中的数据
• 3.DataReader对象及其使用
(1)DataReader对象的常用属性 FieldCount属性 RecordsAffected属性
第11章 数据库访问技术
学习目标:
◇ 数据库的基本概念 ◇ 概述 ◇ SQL语言 ◇ 对象及其编程 ◇ 利用ADO .NET控件编写数据库应用程序
11.1 数据库的基本概念
1.数据库应用概述 2.数据库的基本概念
所谓数据库(Database DB),其实就是存放 在计算机的外存储器中的相关数据的集合,可以形 象地看作是数据的“仓库”,它是通过文件或类似 于文件的数据单位组织起来的。
ExecuteReader方法
[格式]: public OleDbDataReader
ExecuteReader();
【例11-02】 已知在应用程序当前目录下,有一 个名为Student.mdb的数据库,该数据库中有一 个名为student的表,表中的数据如图11-5所示 。请使用Command对象执行SQL命令向表中插 入一个学生的信息,学生数据如下:
图11-7 程序设计界面
图11-8 程序运行界面
• 4.DataAdapter对象及其使用
(1)DataAdapter对象的常用属性 SelectCommand属性 InsertCommand属性 UpdateCommand属性 DeleteCommand属性
(2)DataAdapter对象的常用方法 Fill方法 [格式]:public int Fill(DataSet dataSet, stringsrcTable); Update方法 [格式1]:public override int Update(DataSet dataSet); [格式2]:public override int Update(DataSet
程序运行界面
2.数据绑定控件
(1)数据绑定的概念
数据绑定的含义是使控件和数据源捆绑在一 起,通过 控件来显示或修改数据。
(2)简单数据绑定的方法
【例11-6】 已知在应用程序当前目录下,有一个 名为Student.mdb的数据库,该数据库中有一个 名为student的表,请编写一个浏览该数据表的 程序,程序的设计界面如图11-22所示,程序的运 行界面如图11-23所示。程序运行时单击相应按钮 ,将在界面上显示相应记录的内容。
图14-24 程序设计界面 图14-25 程序运行界面
3.修改记录
[格式]:UPDATE 表名 SET 字段名1 = 表达式1[,字段 名2=表达式2…] [WHERE 条件]]
4.删除记录
[格式]:DELETE FROM 表名 [WHERE 条件] 例如,有以下语句: DELETE FROM 学生 WHERE 专业="经济管理" 其作用是从“学生”表中删除所有“经济管理”专业的
dataSet,string Table);
• 5.DataSet对象及其使用
(1)DataSet对象的组成 (2)DataSet对象的填充 (3)DataSet对象的访问
[格式1]:数据集对象名.Tables[“数据表名 ”].Rows[n][“列名”]
[格式2]:数据集对象名.Tables[“数据表名 ”].Rows[n].ItemsArray[k]
DataReader、DataSeห้องสมุดไป่ตู้等对象; (5)向用户显示数据,需使用数据控件。
11.3 SQL语言
1.数据查询
[格式]:SELECT [ALL | DISTINCT |TOP N|TOP N PERCENT]*|列名1或表达式1 [AS 列标题1 ] [, 列名2或表达式2 [AS 列标题2]…] FROM 表名1 [ IN 数据库名1] 别名1[,表名2 [ IN 数据库名2] 别名2 …] [WHERE 条件] [GROUP BY列名1 [, 列名2]…] [HAVING 条件] [ORDER BY 列名1 [ASC | DESC] [, 列名2 [ASC | DESC]…]]
类定义在System.Data命名空间中,如 果要在应用程序中使用类和对象,就必须使 用using语句对该命名空间进行引用。然后为应用程序 所使用的数据源引用.NET数据提供者。SQL Server .NET数据提供者 Oracle .NET数据提供者 OLE 数据提供者 ODBC .NET提供者即在每一 个.NET数据提供者中定义的对象,其名称前带有特定提 供者的名称,例如用于SQL Server .NET提供者的数据库 连接对象是SqlConnection,用于OLE DB的命令对象 OleDbCommand等。
图11-4 程序运行界面
• 2.Command对象及其使用
(1)Command对象的常用属性 CommandType属性 CommandText属性 CommandTimeout属性 Connection属性
(2)Command对象的常用方法 Prepare方法 [格式]:public void Prepare( ); ExecuteNonQuery方法 [格式]:public int ExecuteNonQuery();