ADO.NET – 连接数据库. 2 课程地位 STB SQL Server XML PSPM ASP.NET Oracle OOAD Computer Base HTML&JavaScript OOP\Java C C SQL Base JSP/Servlet EJB/WebService C#

Slides:



Advertisements
Similar presentations
第五章 通用网关接口 CGI 简介 Htm l Html + CGI Html + asp 网页可以处理动态的信息.
Advertisements

第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
JSP 与数据库 SQL 语言简介 SQL 语言简介 JDBC 简介 JDBC 简介 使用 JDBC 连接数据库 使用 JDBC 连接数据库 访问数据库 数据库访问应用举例.
Data type P64 ‘’ 转义字符 P67 P68 EXE,选出某个教师的学生中最新的一 个,要姓名, ID (,LIMIT ) EXISTS,NOT EXISTS P409 Q,EXISTS 和 in 的区别( 1000 ,查询结果)
教育技术装备统计系统 使用培训 教育部基础教育司 教育部教育管理信息中心.
Database Management System 資料庫管理系統
主讲:史治平 地址:四川电大计算机教研室 电话:
第21章 .NET报表设计 (时间:1.5次课,3学时).
第13章 数据库的基本应用 Visual Basic 程序设计教程.
十一 ASP对数据库的访问.
第7章利用ADO.NET 进行数据访问.
第2讲 Transact-SQL语言.
ASP.NET 網頁製作教本 – 從基本語法學起
ADO .NET 簡介.
配合< JSP程序设计>例子源代码一起使用
第8章 设计数据库应用网站 本章讲述的主要内容 8.1 数据库基础知识 8.2 使用数据库系统 8.3 SQL查询基础
第六章 数据库和ADO.NET 褚龙现 软件学院.
資料庫 (Database) SQL Server 2008實作
第7章 数据库基础知识 SQL常用命令使用方法 (1) 数据记录筛选: sql="select * from 数据表
文科计算机小公共课规划教材 Access 程序设计.
Chap 13 視界與資料庫程式設計.
第6章 ADO.NET数据库编程.
資料庫管理 資管二 賴柏融.
第二期实验室工作人员培训讲座(三) 加强规范化建设 提高仪器设备管理水平 设备处 黄久龙 2017年9月13日 徐州师范大学设备处 黄久龙.
第 11 章 資料庫應用與 ADO物件 製作.
資料庫程式設計 VB資料庫設計簡介 週次:4 建國科技大學 資管系 饒瑞佶.
Visual C# 2010 程式設計經典 第15章 ADO .NET與資料工具.
課程名稱:資料庫系統 授課老師:李春雄 博士
Chapter 12 T-SQL 語法與 ASP.NET.
資料庫操作2.
ADO.NET.
課程名稱:資料庫系統 授課老師:李春雄 博士
主 讲 教 师:陆有军 Web技术与应用 第六章 ADO.NET 主 讲 教 师:陆有军
課程名稱:資料庫系統 授課老師:李春雄 博士
班級:博、碩子一甲 授課老師:鐘國家 助教:陳國政
第6章 ADO.NET数据访问接口 6.
上述代码规范了 INSERT 语句的编写规范,其中:
第2章 ADO.NET 2.0概述.
第十四章 資料庫應用程式 14.1 ADO.NET簡介 14.4 資料的單筆巡覽、新增、 修改、刪除
SQL Server 2000 数据库入门.
VB如何存取資料庫 ? 資料庫 資料儲存 資料庫引擎 資料庫引擎 Jet 讀取、寫入與修改 資料控制項 資料庫存取物件(ADO) 使用者介面.
第7章 ADO.NET操作SQL Server数据库
5 数据库管理与保护 数据库运行的最小逻辑工作单位是事务,所有对数据库的操作,都以事务作为一个整体来执行或撤销。
数据保护技术(完整性、并发性、安全性和数据库恢复)
讲课人:王璞 浙江工商职业技术学院.
第9章 事务.
5.5.1 存储过程的优点 ① 事务处理 ② 速度和性能 ③ 过程控制 ④ 安全性 ⑤ 减少网络流量和通信 ⑥ 模块化
5.1.1 使用 ExecuteReader()操作数据库
ASP.net 企业级应用开发 信息工程系:罗明刚.
1 创建SqlDataSouce控件 数据源控件(SqlDataSource)
操作数据库 C#程序设计课程组.
使用ADO.NET访问数据 数据库连接 C#程序设计课程组.
第十二章 SQL語言簡介 講授大綱: 新增資料庫 新增資料表 新增資料 修改資料 刪除資料 查詢資料 透視ASP.NET-第12章
C# 程序设计教程 同济大学计算机系基础学科组
Connection对象 访问数据库的第一步是建立连接,只有建立连接,才可能实现 在数据库和应用程序之间移动数据。 ADO提供了连接对象:
第 8 章 VB.NET与数据库应用程序 本章主要内容: ADO.NET体系结构; VB.NET与SQL Server数据库的连接;
第一章 SQL Server数据库基础.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
ORACLE 第九讲 触发器.
第五讲 酒店客房管理系统(一) 教育部“十二五”职业教育国家规划教材
第十讲 学生成绩管理系统(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
SQL Server Mobile 2005 程序开发(三)
4.2 视图 (1) 视图是一个虚拟表,其内容来自对表查询的基础上。
通讯录管理系统设计 常州工程职业技术学院 计算机技术系.
第 10 章 ADO.NET與XML.
第8章 ADO组件的使用 本章主要内容: TADOConnection组件的使用 TADOCommand组件的使用
第三章 SQL Server数据管理.
1 打开 SQL Server 2005 安装盘,单击 SPLASH.HTA 文件进行安装,安装界面如图所示。
ASP.NET实用教程 清华大学出版社 第9章数据库应用 教学目标 教学重点 教学过程 2019年5月3日.
数据库应用技术 天津电大 翟迎建.
Presentation transcript:

ADO.NET – 连接数据库

2 课程地位 STB SQL Server XML PSPM ASP.NET Oracle OOAD Computer Base HTML&JavaScript OOP\Java C C SQL Base JSP/Servlet EJB/WebService C# Struts/JSF Testing/SQA Linux WinForms

3 课程目标  使用 ADO.NET 构造数据库应用程序  WinForms 桌面程序设计  使用网络服务组件  掌握.NET 平台下的 C/S 结构应用程序的框架  熟练 C# 编码

4 本章目标  了解 ADO.NET 结构  了解 ADO.NET 的组件  使用 Command 对象和 Connection 对象  使用 ADO.NET 进行事务处理

5 ADO.NET 简介 4-1 以流的形式从文件中读写数据 以流的形式从文件中读写数据

6 ADO.NET 简介 4-2 以流的形式从文件中读写数据 中央数据库 要管理数据库,需要专门的软件应用程序 MS-ACCESS SQL-Server ORACLE

7 ADO.NET 简介 4-3 中央数据库 用户需要时,可以随时访问数据 用户计算机向数据库服务器发送请求 客户端 客户端 不同的访问方法和技术

8 ADO.NET 简介 4-4.NET Framework System.Data 命名空间 以 ActiveX 数据对象 (ADO) 为基础 以 XML (扩展标记语言)为格式传送和接收数据 以 ActiveX 数据对象 (ADO) 为基础 以 XML (扩展标记语言)为格式传送和接收数据

9 ADO.NET 的优点  互操作性  性能  可伸缩性  标准化  可编程能力

10 ADO.NET 的结构

11 ADO.NET 对数据库的访问 (3-1) 将数据传递到用户界面时, ADO.NET 采用 XML 格式 数据已缓存

12 ADO.NET 对数据库的访问 (3-2) 对于 Insert,Update,Delete 等单向操作 应用程序应用程序 数据库数据库 1 、用 Connection.Open 打开数据库 2 、用 DataAdaptor.Command 或者 Command.Execute 执行命令 3 、关闭数据库 Insert 用 InsertCommand Delete 用 DeleteCommand Update 用 UpdateCommand Insert 用 InsertCommand Delete 用 DeleteCommand Update 用 UpdateCommand

13 ADO.NET 对数据库的访问 (3-3) 应用程序应用程序数据库数据库 关闭数据库 1 、用 Connection.Open 建立连接 2 、用 DataAdaptor.SelectCommand 执行命令 DataAdaptor.Fill 对于 Select 的双向操作 DataSet

14 知识点小结  引入 ADO.NET 的原因  ADO.NET 的优缺点  ADO.NET 的组成结构  ADO.NET 对数据库的调用过程

15.NET 数据提供程序 5-1 Connection Command DataReader DataAdapter ADO.NET DataSet.NET Framework 数据提供程序 1 、 SQLClient 2 、 OLEDB 3 、 Oracle 4 、 ODBC 由以下各项组成的集合:

16.NET 数据提供程序 5-2 客户端 服务器 数据集 2 、将数据发送到数据集 A 、客户端修改数据集 3 、数据集传递给客户端 B 、将修改后的数据 集传递给服务器 1 、客户端从服务器请求数据 1 , 2 , 3 是从服务器检索数据的过程 A 、 B 是对数据库修改的过程

17.NET 数据提供程序 5-3  用于 SQL Server 的.NET Framework 数据提供程序 System.Data.SqlClient 命名空间 仅限于连接 SQL Server 数据库 7.0 或更高版本

18.NET 数据提供程序 5-4  用于 OLEDB 的.NET Framework 数据提供程序

19.NET 数据提供程序 5-5  用于 ODBC 的.NET Framework 数据提供程序的 命名空间  用于 Oracle 的.NET Framework 数据提供程序的 命名空间 System.Data.Odbc 命名空间 System.Data.OracleClient 命名空间

20 知识点小结  使用的名称空间  SQL Server using System.Data.SqlClient  OLE DB using System.Data.OleDb  Oracle using System.Data.OracleClient  ODBC using System.Data.Odbc

21 Connection 对象 4-1.NET Framework 数据提供程序 Connection 类 SQL 数据提供程序 SqlConnection OLE DB 数据提供程序 OleDbConnection Oracle 数据提供程序 OracleConnection ODBC 数据提供程序 OdbcConnection 在 ADO.NET 中,必须显式关闭连接,才能释放实际的数据库连接

22 Connection 对象 4-2 方法 Close() Open() 属性 ConnectionString Database

23 Connection 对象 4-3 单击 “ 数据 ” 选项卡 SqlConnection 拖放 sqlConnection1 已添加 从列表中选择 SQL Server 指定用户名和密码 最后选择数据库 如果连接成功,则会显示一则消息

24 Connection 对象 4-4 使用代码编辑器 使用代码编辑器 SqlConnection objSqlConnection = new SqlConnection ("server = SQLDB; uid = sa; pwd = password; database = pubs"); objSqlConnection.Open(); objSqlConnection  创建的连接对象名称 SQLDB  存储 “pubs” 数据库的服务器名称,也可以写成 IP 地址, 如 本地服务器可以有以下几种写法: 1 、( local ) 2 、 、本地机子名称 uid, pwd  用户标识和密码

25 知识点小结  Connection 对象的作用  Connection 对象的两种使用方法  拖拉控件  写代码  四种典型的连接方式的应用名称空间和连接字符 串的写法  SqlConnection  OleDbConnection  OracleConnection  OdbcConnection

26 Command 对象 7-1 数据库数据库 Command 对象指定要对数据库执行的操作 检索和操纵数据

27 Command 对象 7-2.NET Framework 数据提供程序 Command 类 SQL 数据提供程序 SqlCommand OLE DB 数据提供程序 OleDbCommand Oracle 数据提供程序 OracleCommand ODBC 数据提供程序 OdbcCommand 与数据库建立连接之后,可以使用 Command 对象执行 命令并从数据源返回结果

28 Command 对象 7-3 方法 ExecuteNonQuery() 返回受影响的行数 ExecuteScalar() 返回第一行第一列 ExecuteReader() 返回 DataReader 类型值 属性 CommandText 欲执行的内容,可以是 SQL 语 句或者存储过程名称 Connection CommandType 命令类型

29 Command 对象 7-4  用 SQL 语句的 Command 设置 SqlCommand objComm=new SqlCommand(); objComm.CommandText="SQL 语句 "; objComm.CommandType=CommandType.Text ; objComm. Connection=objConnection;  用存储过程的 Command 设置 SqlCommand objComm=new SqlCommand(); objComm.CommandText=“sp_DeleteName"; objComm.CommandType=CommandType. StoredProcedure ; objComm. Connection=objConnection; Sp_DeleteName 是在 SQL Server 服务器上创建的存储过程

30 Command 对象 6-4 单击 “ 数据 ” 选项卡 SqlCommand 拖放 已添加 sqlCommand1 将 sqlConnection1 设置为 sqlCommand1 的连接 在 CommandText 属性中键入 “Insert into FlightDetails values()”

31 Command 对象 7-6 已添加 “FlightDetails” 表 单击该表中所有字段旁边的框,以指定要在其中插入新值的列 为每一列指定新值 为每一列指定新值

32 Command 对象 7-7 使用代码编辑器 使用代码编辑器 SqlCommand objSqlCommand = new SqlCommand(strSQL); SqlCommand objSqlCommand = new SqlCommand(strSQL); objSqlConnection  创建的 Command 对象名称 strSQL  任何有效的 SQL 语句

33 知识点小结  Command 的作用  Command 的使用前提  Connection 打开  Command 的使用方法  命令文本方式  存储过程方式  Command 返回值类型  返回受影响的行数  返回第一行第一列  返回 DataReader

34.NET 中的事务处理 3-1 帐单 编号编号 说明数量价格总计 1 肥皂 编号: 日期: 2004 年 10 月 30 日 肥皂 关系表 数据库 年 10 月 30 日 已成功地完成对一个表的操作, 但是关系表尚未更新,因此, 数据会出现不一致的现象 成功地进行整个操作或者取消整个操作 确保 事务处理是一组数据操作,这些操作要么必须全部成功, 要么必须全部失败,以保证数据的一致性和完整性

35.NET 中的事务处理 3-2 Begin: 在执行事务处理中的任何操作之前,必须使用 Begin 命令来开始事务处理 Commit: 在成功将所有修改都存储于数据库时,才算是提 交了事务处理 Rollback: 由于在事务处理期间某个操作失败,而取消事务 处理已做的所有修改,这时将发生回滚 Begin: 在执行事务处理中的任何操作之前,必须使用 Begin 命令来开始事务处理 Commit: 在成功将所有修改都存储于数据库时,才算是提 交了事务处理 Rollback: 由于在事务处理期间某个操作失败,而取消事务 处理已做的所有修改,这时将发生回滚 事务处理命令 事务处理命令

36.NET 中的事务处理 3-3 类说明 OdbcTransaction 表示对数据源进行的 SQL 事务处理 OleDbTransaction 表示对数据源进行的 SQL 事务处理 OracleTransaction 表示对数据库进行的事务处理 SqlTransaction 表示要对 SQL Server 数据库进行的 Transact- SQL 事务处理

37 SqlTransaction 类 3-1 方法 属性 Save( ) Rollback( ) Commit( ) Connection SqlTransaction 类表示要对数据源进行的事务处理

38 SqlTransaction 类 3-2 在 ADO.NET 中实现事务处理时执行的步骤顺序 在 ADO.NET 中实现事务处理时执行的步骤顺序 SqlConnection objSqlConnection = new SqlConnection ("server=SQLDB; uid=sa; pwd=password; database=pubs"); objSqlConnection.Open(); 创建数据库连接并打开该连接 SqlTransaction objSqlTransaction = objSqlConnection.BeginTransaction(); 使用 BeginTransaction() 方法开始事务处理

39 SqlTransaction 类 3-3 objSqlCommand.Transaction = objSqlTransaction; 将 Command 对象的 Transaction 属性设置为事务处理对象 insertCommand = "Insert into Student (Id, Name)values (111, "Jim"); objSqlCommand.CommandText = insertCommand; objSqlCommand.ExecuteNonQuery (); 执行 SQL 命令 objSqlTransaction.Commit(); 如果操作过程中没有错误,则提交事务处理。如果 操作过程中发生错误,则回滚已完成的所有修改 objSqlConnection.Close(); 关闭连接

40 应用程序示例 7-1 在 VS.NET 2003 中新建一个名为示例 1 的基于 Windows 的项目。将默认窗体重命名为 frmFlight.cs 用户界面

41 应用程序示例 7-2 控件名称属性值 FormfrmFlightText 航班详细信息 ButtonbtnAddText 添加 (&A) btnModifyText 修改 (&M) btnDeleteText 删除 (&D) btnCancelText 取消 (&C) LabellblFlightCodeText 航班号: lblAirlineText 航空公司: lblDestinationText 终到站: lblSourceText 始发站: lblDepartureText 起飞: lblArrivalText 到达: ComboBoxcboSeatsText 座位数量:

42 应用程序示例 7-3 // Connection 对象和 Command 对象 private SqlConnection objSqlConnection; private SqlCommand objSqlCommand; // 类变量 private string insCmd; private string modCmd; private string delCmd; private void frmFlight_Load(object sender, System.EventArgs e) { // 初始化 connection 对象 objSqlConnection = new SqlConnection ("server = VIJAYK; database = Flights; uid = sa; pwd = playware"); // 将座位数量添加到组合框中 this.cboSeats.Items.Clear(); this.cboSeats.Items.Add("100"); this.cboSeats.Items.Add("150"); this.cboSeats.Items.Add("200"); this.btnModify.Enabled = false; this.btnDelete.Enabled = false; } 给组合框添加项并禁用按钮 初始化 connection 对象

43 应用程序示例 7-4 private void btnAdd_Click(object sender, System.EventArgs e) { // 插入命令 insCmd = "insert into FlightDetails values ('"+this.txtFlightCode.Text+"', '"+this.txtAirline.Text+"','“ +this.txtDestination.Text+"', '“+this.txtSource.Text+"','“ +this.txtArrival.Text+"', '"+this.txtDeparture.Text+"', “ +this.cboSeats.SelectedItem.ToString()+")"; // 初始化 command 对象 objSqlCommand = new SqlCommand(insCmd, objSqlConnection); 将插入命令和 connection 对 象传递给 command 对象 btnAdd Click 事件处理程序

44 应用程序示例 7-5 try { // 打开连接 objSqlConnection.Open(); // 执行插入语句 objSqlCommand.ExecuteNonQuery(); MessageBox.Show(“ 已成功添加记录 "); // 启用和禁用按钮 this.btnModify.Enabled = true; this.btnDelete.Enabled = true; this.btnAdd.Enabled = false; this.txtFlightCode.Enabled = false; } catch(SqlException ex) { MessageBox.Show(ex.Message); } finally { // 关闭连接 objSqlConnection.Close(); } 打开连接并执行 objSqlCommand 中的命令 btnAdd Click 事件处理程序

45 应用程序示例 7-6 private void btnModify_Click(object sender, System.EventArgs e) { modCmd = "update FlightDetails set Airline = '“ +this.txtAirline.Text+"', Destination = '“ +this.txtDestination.Text+"', Source = '"+this.txtSource.Text+"', Arrival = '"+this.txtArrival.Text+"', Departure = '"+this.txtDeparture.Text+"', TotalSeats = "+this.cboSeats.SelectedItem.ToString()+" where FlightCode like '"+this.txtFlightCode.Text+"'"; objSqlCommand = new SqlCommand(modCmd, objSqlConnection); try { objSqlConnection.Open(); objSqlCommand.ExecuteNonQuery(); MessageBox.Show(“ 已成功更新记录 "); } catch(SqlException ex) { MessageBox.Show(ex.Message); } finally { objSqlConnection.Close(); } 设置更新命令 btnModify Click 事件处理程序

46 Sample Application 7-7 private void btnDelete_Click(object sender, System.EventArgs e) { delCmd = "delete from FlightDetails where FlightCode like '“ +this.txtFlightCode.Text+"'"; MessageBox.Show(delCmd); // 初始化 command 对象 objSqlCommand = new SqlCommand(delCmd, objSqlConnection); try { // 初始化 DialogResult DialogResult objDialogResult = MessageBox.Show(“ 您确定要删除当前记录吗? ", “ 确认 ", MessageBoxButtons.YesNo); // 确定用户的响应 if (objDialogResult.Equals(DialogResult.Yes)) { objSqlConnection.Open(); objSqlCommand.ExecuteNonQuery(); MessageBox.Show(“ 已删除记录 "); btnModify.Enabled = false; } btnDelete Click 事件处理程序

47 总结 2-1 .NET framework 中的 ADO.NET 是一组类,允许 应用程序与数据库交互,以便检索和更新信息  DataSet 和.NET 数据提供程序是 ADO.NET 的 两个主要组件  每种.NET 数据提供程序都是由以下四个对象组 成:  Connection  Command  DataAdapter  DataReader

48 总结 2-2  Connection 对象用于在应用程序和数据库之间建 立连接  Command 对象允许向数据库传递请求、检索和 操纵数据库中的数据  事务处理是一组数据操作,这些操作要么必须全 部成功,要么必须全部失败,以保证数据的一致 性和完整性