




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ADO.NET连接数据库,西源软件培训中心,目标,了解ADO.NET 结构 了解ADO.NET 的组件 理解Command 对象和 Connection 对象 理解ADO.NET 进行事务处理,ADO.NET 简介,以流的形式从文件中读写数据,少量数据,不适用于,大量数据,ADO.NET 简介,以流的形式从文件中读写数据,少量数据,不适用于,大量数据,中央数据库,要管理数据库,需要专门的软件应用程序,RDBMS,ADO.NET 简介,中央数据库,用户需要时,可以随时访问数据,用户计算机向数据库服务器发送请求,客户端,不同的访问方法和技术,ADO .NET,ADO.NET 简介,.NET Framework,ADO .NET,System.Data 命名空间,以 ActiveX 数据对象 (ADO) 为基础 以 XML(扩展标记语言)为格式传送和接收数据,ADO.NET 的优点,互操作性 性能 可伸缩性 标准化 可编程能力,ADO.NET的结构,ADO.NET 对数据库的访问,将数据传递到用户界面时, ADO.NET 采用 XML 格式,数据已缓存,断开式数据结构,ADO.NET 对数据库的访问,对于Insert,Update,Delete 等单向操作,应用程序,数据库,1、用Connection.Open打开数据库,2、用DataAdaptor.Command或者 Command.Execute 执行命令,3、关闭数据库,Insert用InsertCommand Delete 用DeleteCommand Update用UpdateCommand,ADO.NET 对数据库的访问,应用程序,数据库,关闭数据库,1、用Connection .Open建立连接,2、用DataAdaptor.SelectCommand 执行命令,DataAdaptor.Fill,对于Select的双向操作,DataSet,知识点小结,引入ADO.NET的原因 ADO.NET的优缺点 ADO.NET的组成结构 ADO.NET对数据库的调用过程,.NET 数据提供程序,ADO.NET,DataSet,.NET Framework 数据提供程序,1、SQLClient 2、OLEDB 3、Oracle 4、ODBC,由以下各项组成的集合:,.NET 数据提供程序,客户端,服务器,数据集,2、将数据发送到数据集,A、客户端修改数据集,3、数据集传递给客户端,B、将修改后的数据集传递给服务器,1、客户端从服务器请求数据,1,2,3是从服务器检索数据的过程 A、B是对数据库修改的过程,.NET 数据提供程序,用于 SQL Server 的 .NET Framework 数据提供程序,System.Data.SqlClient 命名空间,仅限于连接 SQL Server 数据库 7.0 或更高版本,.NET 数据提供程序,用于 OLEDB 的 .NET Framework 数据提供程序,.NET 数据提供程序,用于 ODBC 的 .NET Framework 数据提供程序的命名空间 用于 Oracle 的 .NET Framework 数据提供程序的命名空间,System.Data.Odbc 命名空间,System.Data.OracleClient 命名空间,知识点小结,使用的名称空间 SQL Server using System.Data.SqlClient OLE DB using System.Data.OleDb Oracle using System.Data.OracleClient ODBC using System.Data.Odbc,Connection 对象,在 ADO.NET 中,必须显式关闭连接,才能释放实际的数据库连接,Connection 对象,方法,Close(),Open(),属性,ConnectionString,Database,Connection 对象4-3,单击“数据”选项卡,SqlConnection,拖放,sqlConnection1 已添加,从列表中选择 SQL Server,指定用户名和密码,最后选择数据库,如果连接成功,则会显示一则消息,Connection 对象,使用代码编辑器,SqlConnection objSqlConnection = new SqlConnection (“server = SQLDB; uid = sa; pwd = password; database = pubs“); objSqlConnection.Open();,objSqlConnection 创建的连接对象名称,SQLDB 存储“pubs”数据库的服务器名称,也可以写成IP地址,如 本地服务器可以有以下几种写法: 1、(local) 2、 3、本地机子名称,uid, pwd 用户标识和密码,知识点小结,Connection对象的作用 Connection对象的两种使用方法 拖拉控件 写代码 四种典型的连接方式的应用名称空间和连接字符串的写法 SqlConnection OleDbConnection OracleConnection OdbcConnection,Command 对象,数据库,Command 对象指定要对数据库执行的操作,检索和操纵数据,Command,Command 对象,与数据库建立连接之后,可以使用 Command 对象执行命令并从数据源返回结果,Command 对象,方法,ExecuteNonQuery() 返回受影响的行数,ExecuteScalar() 返回第一行第一列,ExecuteReader() 返回DataReader类型值,属性,CommandText 欲执行的内容,可以是SQL语句或者存储过程名称,Connection,CommandType 命令类型,Command 对象,用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服务器上创建的存储过程,Command 对象 6-4,单击“数据”选项卡,SqlCommand,拖放,已添加 sqlCommand1,将 sqlConnection1 设置为 sqlCommand1 的连接,在 CommandText 属性中键入“Insert into FlightDetails values()”,Command 对象,已添加“FlightDetails”表,单击该表中所有字段旁边的框,以指定要在其中插入新值的列,为每一列指定新值,Command 对象,使用代码编辑器,SqlCommand objSqlCommand = new SqlCommand(strSQL);,objSqlConnection 创建的 Command 对象名称,strSQL 任何有效的 SQL 语句,知识点小结,Command的作用 Command的使用前提 Connection打开 Command的使用方法 命令文本方式 存储过程方式 Command返回值类型 返回受影响的行数 返回第一行第一列 返回DataReader,.NET 中的事务处理,肥皂,关系表,数据库,5,12439,12439,2004 年 10 月 30 日,已成功地完成对一个表的操作,但是关系表尚未更新,因此,数据会出现不一致的现象,不完整的,事务处理!,成功地进行整个操作或者取消整个操作,确保,事务处理是一组数据操作,这些操作要么必须全部成功,要么必须全部失败,以保证数据的一致性和完整性,.NET 中的事务处理,Begin: 在执行事务处理中的任何操作之前,必须使用 Begin 命令来开始事务处理 Commit: 在成功将所有修改都存储于数据库时,才算是提交了事务处理 Rollback: 由于在事务处理期间某个操作失败,而取消事务处理已做的所有修改,这时将发生回滚,事务处理命令,.NET 中的事务处理,SqlTransaction 类,方法,属性,Save( ),Rollback( ),Commit( ),Connection,SqlTransaction 类表示要对数据源进行的事务处理,SqlTransaction 类,在 ADO.NET 中实现事务处理时执行的步骤顺序,SqlConnection objSqlConnection = new SqlConnection (“server=SQLDB; uid=sa; pwd=password; database=pubs“); objSqlConnection.Open();,创建数据库连接并打开该连接,SqlTransaction objSqlTransaction = objSqlConnection.BeginTransaction();,使用 BeginTransaction() 方法开始事务处理,SqlTransaction 类,objSqlCommand.Transaction = objSqlTransaction;,将 Command 对象的 Transaction 属性设置为事务处理对象,insertCommand = “Insert into Student (Id, Name)values (111, “Jim“); objSqlCommand.CommandText = insertCommand; objSqlCommand.ExecuteNonQuery ();,执行 SQL 命令,objSqlTransaction.Commit();,如果操作过程中没有错误,则提交事务处理。如果操作过程中发生错误,则回滚已完成的所有修改,objSqlConnection.Close();,关闭连接,应用程序示例,在 VS.NET 2003 中新建一个名为示例 1 的基于 Windows 的项目。将默认窗体重命名为 frmFlight.cs,用户界面,应用程序示例,应用程序示例,/ 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 对象,应用程序示例,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 事件处理程序,应用程序示例 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 事件处理程序,应用程序示例 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 事件处理程序,Sample Application 7-7,private void btnDelete_Click(object sender, System.EventArgs e) delCmd = “delete from FlightDet
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广场户外租赁合同范本
- 电梯安装加工合同范本
- 企业双方订立合同范本
- 旧改收购合同范本
- 设计合同范本电子档
- 调料配方供货合同范本
- 成品布订货合同范本
- 工厂销售加盟合同范本
- 签订长期用工合同范本
- 买房托管装修合同范本
- 《餐饮食堂厨房消防安全》知识培训
- 绿色施工管理体系与管理制度模版
- 质量控制在银行业中的应用
- 热射病的护理诊断和措施
- 三年级科学教材培训心得
- 北师大版二年级数学上册计算题专项复习大全120
- 北京市海淀区2023-2024年五年级上学期数学期末试卷
- 医疗机构人力资源管理制度
- 品管圈PDCA改善项目-提高住院患者出入量记录的准确率
- 餐厅开荒保洁操作技术方案
- 2024年春季小学三年级英语课件教学方法探索
评论
0/150
提交评论