数据库编程-连接数据库.ppt

上传人:za****8 文档编号:15636119 上传时间:2020-08-27 格式:PPT 页数:45 大小:2.11MB
返回 下载 相关 举报
数据库编程-连接数据库.ppt_第1页
第1页 / 共45页
数据库编程-连接数据库.ppt_第2页
第2页 / 共45页
数据库编程-连接数据库.ppt_第3页
第3页 / 共45页
点击查看更多>>
资源描述
数据库编程-连接数据库,第六章,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 Serverusing System.Data.SqlClient OLE DB using System.Data.OleDb Oracleusing System.Data.OracleClient ODBCusing 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 btnDelete_Click(object sender, System.EventArgs e) delCmd = delete from FlightDetails where FlightCode like “+this.txtFlightCode.Text+; MessageBox.Show(delCmd); / 初始化 command 对象 sqlComm = new SqlCommand(delCmd, sqlConn); try / 初始化 DialogResult DialogResult objDialogResult = MessageBox.Show(“您确定要删除当前记录吗?, “确认, MessageBoxButtons.YesNo); / 确定用户的响应 if (objDialogResult.Equals(DialogResult.Yes) sqlConn.Open(); sqlComm.ExecuteNonQuery(); MessageBox.Show(“已删除记录); btnModify.Enabled = false; ,btnDelete Click 事件处理程序,44,总结 2-1,.NET framework 中的 ADO.NET 是一组类,允许应用程序与数据库交互,以便检索和更新信息 DataSet 和 .NET 数据提供程序是 ADO.NET 的两个主要组件 每种 .NET 数据提供程序都是由以下四个对象组成: Connection Command DataAdapter DataReader,45,总结 2-2,Connection 对象用于在应用程序和数据库之间建立连接 Command 对象允许向数据库传递请求、检索和操纵数据库中的数据 事务处理是一组数据操作,这些操作要么必须全部成功,要么必须全部失败,以保证数据的一致性和完整性,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!