




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库编程-连接数据库,第六章,2,本章目标,了解ADO.NET 结构 了解ADO.NET 的组件 使用Command 对象和 Connection 对象 使用ADO.NET 进行事务处理,3,ADO.NET 简介 2-1,中央数据库,用户需要时,可以随时访问数据,用户计算机向数据库服务器发送请求,客户端,不同的访问方法和技术,ADO .NET,4,ADO.NET 简介 2-2,.NET Framework,ADO .NET,System.Data 命名空间,以 ActiveX 数据对象 (ADO) 为基础 以 XML(扩展标记语言)为格式传送和接收数据,5,ADO.NET 的优点,互操作性 性能 可伸缩性 标准化 可编程能力,6,ADO.NET 对数据库的访问(3-1),将数据传递到用户界面时, ADO.NET 采用 XML 格式,数据已缓存,断开式数据结构,7,ADO.NET 对数据库的访问(3-2),对于Insert,Update,Delete 等单向操作,应用程序,数据库,1、用Connection.Open打开数据库,2、用DataAdaptor.Command或者 Command.Execute 执行命令,3、关闭数据库,Insert用InsertCommand Delete 用DeleteCommand Update用UpdateCommand,8,ADO.NET 对数据库的访问(3-3),应用程序,数据库,关闭数据库,1、用Connection .Open建立连接,2、用DataAdaptor.SelectCommand 执行命令,DataAdaptor.Fill,对于Select的双向操作,DataSet,9,.NET 数据提供程序 5-1,ADO.NET,DataSet,.NET Framework 数据提供程序,1、SQLClient 2、OLEDB 3、Oracle 4、ODBC,由以下各项组成的集合:,10,.NET 数据提供程序 5-2,客户端,服务器,数据集,2、将数据发送到数据集,A、客户端修改数据集,3、数据集传递给客户端,B、将修改后的数据集传递给服务器,1、客户端从服务器请求数据,1,2,3是从服务器检索数据的过程 A、B是对数据库修改的过程,11,.NET 数据提供程序 5-3,用于 SQL Server 的 .NET Framework 数据提供程序,System.Data.SqlClient 命名空间,仅限于连接 SQL Server 数据库 7.0 或更高版本,12,.NET 数据提供程序 5-4,用于 OLEDB 的 .NET Framework 数据提供程序,13,.NET 数据提供程序 5-5,用于 ODBC 的 .NET Framework 数据提供程序的命名空间 用于 Oracle 的 .NET Framework 数据提供程序的命名空间,System.Data.Odbc 命名空间,System.Data.OracleClient 命名空间,14,知识点小结,使用的名称空间 SQL Server using System.Data.SqlClient OLE DB using System.Data.OleDb Oracle using System.Data.OracleClient ODBC using System.Data.Odbc,15,为什么使用 Connection,应用程序,数据源,请求数据,Connection,16,示例1 代码分析,关键代码回顾,/ 数据库连接字符串 string connString = “Data Source= . ;Initial Catalog=MySchool;User ID=sa“; / 创建 Connection 对象 SqlConnection connection = new SqlConnection(connString); / 打开数据库连接 connection.Open(); MessageBox.Show(“打开数据库连接成功“); / 关闭数据库连接 connection.Close(); MessageBox.Show(“关闭数据库连接成功“);,表示本机,17,Connection 主要成员,必须显式关闭连接,18,连接数据库步骤,连接数据库的步骤: 1、定义连接字符串,2、创建 Connection 对象,3、打开与数据库的连接,Data Source=服务器名;Initial Catalog=数据库名; User ID=用户名;Pwd=密码,SqlConnection connection = new SqlConnection(connString);,连接字符串,connection.Open( );,没有密码,可省略,19,Connection 对象,不同命名空间的 Connection 对象,20,小结,连接到本机的 pubs 数据库,/ 连接字符串 string connString = “Data Source=.;Initial Catalog=pubs;User ID=sa“; / 创建Connection 对象 SqlConnection connection = new SqlConnection(connString); connection.Open( ); / 打开数据库连接 connection.Close( ); / 关闭数据库连接,关键代码,21,为什么使用 Command,应用程序 打开数据库 处理数据 ,数据源,Connection,Command,执行命令并从数据源中返回结果,22,Command 的主要成员,23,使用 Command 步骤,使用Command步骤: 1、创建数据库连接 2、定义 SQL 语句 3、创建 Command 对象 4、执行命令,SqlConnection connection = new SqlConnection(connString); string sql = “SELECT COUNT(*) FROM Student“; connection.Open();/ 打开数据库连接 SqlCommand command = new SqlCommand(sql, connection); int num = (int)command.ExecuteScalar();,执行命令前,必须打开数据库连接!,要进行类型转换!,24,Command 对象,用SQL 语句的Command设置 SqlCommand Comm=new SqlCommand(); Comm.CommandText=“SQL 语句“; Comm.CommandType=CommandType.Text ; Comm. Connection=sqlConn; 用存储过程的Command设置 SqlCommand Comm=new SqlCommand(); Comm.CommandText=“sp_UpdateName“; Comm.CommandType=CommandType. StoredProcedure ; Comm. Connection=sqlConn; 其中,Sp_UpdateName是在SQL Server服务器上创建的存储过程,25,综合示例,完成系统登录功能 1、验证管理员的用户名和密码是否存在 2、验证通过,显示管理员主窗体,处理登录按钮的 Click 事件 定义一个 ValidateUser() 方法 需要 Connection 和 Command 对象 分两步实现验证: 1、建立数据库连接 2、验证用户是否存在,26,用户验证方法框架,ValidateUser() 方法框架,1、验证的结果:通过,不通过,返回值为 bool 型,2、方法需要: 用户名,密码,登录类型,值方式传参,3、不通过的原因: 用户名或密码不存在、其他原因,引用方式传参,public bool ValidateUser(string loginType, string loginId, string loginPwd, ref string message) ,27,用户验证方法具体实现,第一步:建立数据库连接 增加 DBHelper 类,第二步:查询用户是否存在 SELECT COUNT(*) ExecuteScalar() 方法查询,ValidateUser() 方法具体实现,28,小结,/ 查询 Student 表使用的 SQL 语句 string sql = string.Format( “SELECT COUNT(*) FROM Student WHERE LogInId=0 AND LogInPwd=1“,txtLogInId, txtLogInPwd); / 使用的 Command 对象 SqlCommand command = new SqlCommand(sql, DBHelper.connection); DBHelper.connection.Open(); / 执行查询,返回找到的个数 count = (int)command.ExecuteScalar();,增加验证用户的代码,29,总结,Connection 对象的什么方法用来打开和关闭数据库连接? ExecuteScalar()方法返回什么?,30,知识点小结,Connection对象的作用 Connection对象的两种使用方法 拖拉控件 写代码 四种典型的连接方式的应用名称空间和连接字符串的写法 SqlConnection OleDbConnection OracleConnection OdbcConnection,31,.NET 中的事务处理 3-1,肥皂,关系表,数据库,5,12439,12439,2004 年 10 月 30 日,已成功地完成对一个表的操作,但是关系表尚未更新,因此,数据会出现不一致的现象,不完整的,事务处理!,成功地进行整个操作或者取消整个操作,确保,事务处理是一组数据操作,这些操作要么必须全部成功,要么必须全部失败,以保证数据的一致性和完整性,32,.NET 中的事务处理 3-2,Begin: 在执行事务处理中的任何操作之前,必须使用 Begin 命令来开始事务处理 Commit: 在成功将所有修改都存储于数据库时,才算是提交了事务处理 Rollback: 由于在事务处理期间某个操作失败,而取消事务处理已做的所有修改,这时将发生回滚,事务处理命令,33,.NET 中的事务处理 3-3,34,SqlTransaction 类 3-1,方法,属性,Save( ),Rollback( ),Commit( ),Connection,SqlTransaction 类表示要对数据源进行的事务处理,35,SqlTransaction 类 3-2,在 ADO.NET 中实现事务处理时执行的步骤顺序,SqlConnection sqlConn = new SqlConnection (“server=SQLDB; uid=sa; pwd=sa; database=pubs“); sqlConn.Open();,创建数据库连接并打开该连接,SqlTransaction sqlTrans = sqlConn.BeginTransaction();,使用 BeginTransaction() 方法开始事务处理,36,SqlTransaction 类 3-3,Comm.Transaction = sqlTrans;,将 Command 对象的 Transaction 属性设置为事务处理对象,insertCommand = “Insert into Student (Id, Name)values (200494012, “WangLi“); Comm.CommandText = insertCommand; Comm.ExecuteNonQuery ();,执行 SQL 命令,sqlTrans.Commit();,如果操作过程中没有错误,则提交事务处理。如果操作过程中发生错误,则回滚已完成的所有修改,sqlConn.Close();,关闭连接,37,应用程序示例 7-1,在 VS.NET 2005 中新建一个名为Example1 的基于 Windows 的项目。将默认窗体命名为 frmFlight.cs,用户界面,38,应用程序示例 7-2,39,应用程序示例 7-3,/ Connection 对象和 Command 对象 private SqlConnection sqlConn; private SqlCommand sqlComm; / 类变量 private string instrCmd; private string modCmd; private string delCmd;,private void frmFlight_Load(object sender, System.EventArgs e) / 初始化 connection 对象 sqlConn = new SqlConnection (“server = jeny; database = Flights; uid = sa; pwd = sa“); / 将座位数量添加到组合框中 this.cboSeats.Items.Clear(); this.cboSeats.Items.Add(“200“); this.cboSeats.Items.Add(“250“); this.cboSeats.Items.Add(“300“); this.btnModify.Enabled = false; this.btnDelete.Enabled = false; ,给组合框添加项并禁用按钮,初始化 connection 对象,40,应用程序示例 7-4,private void btnAdd_Click(object sender, System.EventArgs e) / 插入命令 instrCmd = “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 对象 sqlComm = new SqlCommand(instrCmd, sqlConn);,将插入命令和 connection 对象传递给 command 对象,btnAdd Click 事件处理程序,41,应用程序示例 7-5,try / 打开连接 sqlConn.Open(); / 执行插入语句 sqlComm.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 / 关闭连接 sqlConn.Close(); ,打开连接并执行 sqlComm 中的命令,btnAdd Click 事件处理程序,42,应用程序示例 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+“; sqlComm = new SqlCommand(modCmd, sqlConn); try sqlConn.Open(); sqlComm.ExecuteNonQuery(); MessageBox.Show(“已成功更新记录“); catch(SqlException ex) MessageBox.Show(ex.Message); finally sqlConn.Close(); ,设置更新命令,btnModify Click 事件处理程序,43,Sample Application 7-7,private void btn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 账户知识培训简报课件
- 象棋的课件教学课件
- 2025版天花吊顶工程智能化设计与施工合同
- 2025年度水电工程绿色施工与节能减排承包合同样本
- 2025版啤酒行业风险管理与保险合同
- 2025版全新智能电网建设项目施工合同编号下载
- 2025版石材长途运输合同及风险防控协议
- 2025版汽车用品试用销售与售后服务合同
- 2025年度东昌府区交通运输局交通设施租赁合同
- 2025版洗煤厂租赁合同及设备更新改造责任书
- 基础护理学题库及答案
- 《遵守校纪班规》课件
- 走进焊接 课件 2.1百花齐放推陈出新-焊接方法
- 北京市律师协会律师办理法律尽职调查业务操作指引
- (2025年标准)会员销售协议书
- 2025至2030中国专业图片存档和通信系统(PACS)行业项目调研及市场前景预测评估报告
- 难治性痛风中西医结合诊疗专家共识解读 4
- 献县地热管理办法
- 教育测量与评价 课件全套 朱德全 第1-15章 教育测量与评价概述- 教育测评结果的统计处理
- 财务共享模式下中储粮财务集中管理研究
- 2024-2025学年四川省成都市蒲江县蒲江中学高三上学期调研摸底考试数学试卷
评论
0/150
提交评论