《连接数据库以及提交数据精选PPT.ppt》由会员分享,可在线阅读,更多相关《连接数据库以及提交数据精选PPT.ppt(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、连接数据库以及提交连接数据库以及提交数据数据第1页,此课件共31页哦本章目标本章目标ADO.NET的功能:显示和更新数据库数据ADO.NET的组成:数据提供程序和数据集连接数据库使用的对象:SqlConnection处理连接数据库异常的对象:SqlException执行SQL命令使用的对象:SqlCommand执行增删改SQL命令的函数:ExecuteNonQueryADO.NET的事务处理对象:SqlTransaction 第2页,此课件共31页哦MySchool MySchool 数据库结构介绍数据库结构介绍第3页,此课件共31页哦ADO.NET ADO.NET 概述概述数据库数据库数据库
2、数据库第4页,此课件共31页哦ADO.NET ADO.NET 概述概述数据库数据库数据库数据库使用数据库存储数据使用数据库存储数据数据库访问的方法和技术数据库访问的方法和技术使用界面显示和更新数据使用界面显示和更新数据第5页,此课件共31页哦ADO.NET ADO.NET 的主要组件的主要组件ADO.NETDataSet(数据集)System.Data命名空间.NET Framework 数据提供程序 System.Data.SqlClient 命名空间只进、只读访问只进、只读访问SQL Server数据数据独立于数据源的数据访问独立于数据源的数据访问第6页,此课件共31页哦ADO.NET A
3、DO.NET 操作数据库结构图操作数据库结构图第7页,此课件共31页哦为什么使用为什么使用ConnectionConnection应用程序应用程序数据源数据源数据源数据源请求数据请求数据Connection桥梁桥梁第8页,此课件共31页哦Connection Connection 主要成员主要成员必须显式关闭连接必须显式关闭连接属性说明ConnectionString 连接字符串方法说明Open打开数据库连接Close关闭数据库连接第9页,此课件共31页哦连接数据库步骤连接数据库步骤连接数据库的步骤:1、定义连接字符串2、创建 Connection 对象3、打开与数据库的连接SQL Serve
4、r身份验证:身份验证:Server=服务器名服务器名;Database=数据库名数据库名;uid=用户名用户名;pwd=密码密码Windows身份验证:身份验证:Server=服务器名服务器名;Database=数据库名数据库名;Integrated Security=trueSqlConnection connection=new SqlConnection(connString);连接字符串连接字符串connection.Open();没有密码则可省略没有密码则可省略第10页,此课件共31页哦连接数据库示例连接数据库示例连接到本机的 MySchool 数据库演示示例1:测试 MySchoo
5、l 数据库连接第11页,此课件共31页哦示例示例1 1 代码分析代码分析/数据库连接字符串数据库连接字符串string connString=server=.SQLEXPRESS;database=myschool;Integrated Security=true;/创建创建 Connection 对象对象SqlConnection connection=new SqlConnection(connString);/打开数据库连接打开数据库连接connection.Open();MessageBox.Show(打开数据库连接成功打开数据库连接成功);/关闭数据库连接关闭数据库连接connect
6、ion.Close();MessageBox.Show(关闭数据库连接成功关闭数据库连接成功);第12页,此课件共31页哦为什么使用为什么使用 Command Command应用程序应用程序打开数据库打开数据库处理数据处理数据数据源数据源数据源数据源Connection怎样处理数据怎样处理数据执行命令并从数据源中返回结果执行命令并从数据源中返回结果 第13页,此课件共31页哦操作数据库示例操作数据库示例查询 MySchool 数据库 Student 表中记录的数目演示示例3:查询Student表记录条数第14页,此课件共31页哦Command Command 的主要的主要成员成员属性说明Con
7、nection Command对象使用的数据库连接CommandText执行的SQL语句方法说明 ExecuteNonQuery执行不返回行的语句,如UPDATE等ExecuteReader返回DataReader对象ExecuteScalar返回单个值,如执行COUNT(*)第15页,此课件共31页哦使用使用 Command Command 步骤步骤使用Command步骤:1、创建数据库连接2、定义 SQL 语句3、创建 Command 对象4、打开数据库连接5、执行命令SqlConnection connection=new SqlConnection(connString);string
8、 sql=SELECT COUNT(*)FROM Student;connection.Open();/打开数据库连接打开数据库连接SqlCommand command=new SqlCommand(sql,connection);int num=(int)command.ExecuteScalar();示例示例 3 关键代码:关键代码:执行命令前,必须打开数据库连接!执行命令前,必须打开数据库连接!要进行类型转换!要进行类型转换!第16页,此课件共31页哦综合示例综合示例完成系统登录功能1、验证管理员的用户名和密码是否存在2、验证通过,显示管理员主窗体处理登录按钮的 Click 事件定义一个
9、 ValidateUser()方法需要 Connection 和 Command 对象分两步实现验证:1、建立数据库连接2、验证用户是否存在 第17页,此课件共31页哦用户验证方法框架用户验证方法框架ValidateUser()方法框架1、验证的结果:通过,不通过、验证的结果:通过,不通过返回值为返回值为 bool 型型2、方法需要:、方法需要:用户名,密码,登录类型用户名,密码,登录类型值方式传参值方式传参3、不通过的原因:、不通过的原因:用户名或密码不存在、其他原因用户名或密码不存在、其他原因引用方式传参引用方式传参public bool ValidateUser(string login
10、Type,string loginId,string loginPwd,ref string message)演示示例4:增加方法的定义和调用第18页,此课件共31页哦用户验证方法实现步骤用户验证方法实现步骤第一步:建立数据库连接增加 DBHelper 类第二步:查询用户是否存在SELECT COUNT(*)ExecuteScalar()方法查询ValidateUser()方法具体实现第19页,此课件共31页哦/查询查询 Student 表使用的表使用的 SQL 语句语句string sql=string.Format(SELECT COUNT(*)FROM Student WHERE Log
11、InId=0 AND LogInPwd=1,txtLogInId,txtLogInPwd);/使用的使用的 Command 对象对象SqlCommand command=new SqlCommand(sql,DBHelper.connection);DBHelper.connection.Open();/执行查询,返回找到的个数执行查询,返回找到的个数count=(int)command.ExecuteScalar();用户验证方法具体实现用户验证方法具体实现演示示例5:用户验证方法具体实现第20页,此课件共31页哦操作数据操作数据应用程序应用程序毛毛,长沙牛耳,良好毛毛,长沙牛耳,良好 毛毛
12、毛毛姓名:姓名:学校:学校:长沙牛耳长沙牛耳成绩:成绩:良好良好如何对数据库的数据进行增删改?使用使用 ExecuteNonQuery()方法方法数数数数 据据据据 库库库库第21页,此课件共31页哦操作数据示例操作数据示例怎样新增学员用户?处理“保存”按钮的 Click事件使用 ExecuteNonQuery()方法向数据库增加记录第22页,此课件共31页哦示例示例 2 2 代码分析代码分析/创建创建command对象对象SqlCommand command=new SqlCommand(sql,DBHelper.connection);/打开数据库连接打开数据库连接DBHelper.con
13、nection.Open();/执行命令执行命令int result=command.ExecuteNonQuery();返回受影响记录的行数返回受影响记录的行数 演示示例演示示例8:向数据库增加记录向数据库增加记录第23页,此课件共31页哦ExecuteNonQuery()ExecuteNonQuery()方法小结方法小结该方法执行指定的 sql 语句返回受影响的行数使用使用 ExecuteNonQuery()的步骤小结:的步骤小结:1、创建、创建 Connection 对象对象2、定义、定义sql 语句语句3、创建、创建 Command 对象对象4、执行、执行 ExecuteNonQuer
14、y()方法方法5、根据返回的结果进行处理、根据返回的结果进行处理第24页,此课件共31页哦ADO.NETADO.NET中的事务处理中的事务处理帐单帐单编编号号 说明说明数量数量价格价格总计总计1肥皂肥皂520 100编号:编号:12439日期:日期:2004年年10月月30日日肥皂肥皂关系表关系表数据库512439124392004 年年 10 月月 30 日日已成功地完成对一个表的操作,但是关系表尚未更新,因此,数据会出现不一致的现象成功地进行整个操作或者取消整个操作 确保事务处理是一组数据操作,这些操作要么必须全部成功,要么必须全部失败,以保证数据的一致性和完整性第25页,此课件共31页哦
15、Begin:在执行事务处理中的任何操作之前,必须使用 Begin 命令来开始事务处理Commit:在成功将所有修改都存储于数据库时,才算是提交了事务处理Rollback:由于在事务处理期间某个操作失败,而取消事务处理已做的所有修改,这时将发生回滚事务处理命令事务处理命令ADO.NETADO.NET中的事务处理中的事务处理第26页,此课件共31页哦方法方法属性属性Save()Save()Rollback(Rollback()Commit()Commit()ConnectionSqlTransaction 类表示要对数据源进行的事务处理ADO.NETADO.NET中的事务处理中的事务处理第27页,
16、此课件共31页哦在 ADO.NET 中实现事务处理时执行的步骤顺序SqlConnection objSqlConnection=new SqlConnection(server=SQLDB;uid=sa;pwd=password;database=pubs);objSqlConnection.Open();创建数据库连接并打开该连接SqlTransaction objSqlTransaction=objSqlConnection.BeginTransaction();使用 BeginTransaction()方法开始事务处理ADO.NETADO.NET中的事务处理中的事务处理第28页,此课件共
17、31页哦objSqlCommand.Transaction=objSqlTransaction;将 Command 对象的 Transaction 属性设置为事务处理对象 insertCommand=Insert into Student(Id,Name)values(111,Jim);objSqlCommand.CommandText=insertCommand;objSqlCommand.ExecuteNonQuery();执行 SQL 命令objSqlTransaction.Commit();如果操作过程中没有错误,则提交事务处理。如果操作过程中发生错误,则回滚已完成的所有修改objSq
18、lConnection.Close();关闭连接ADO.NETADO.NET中的事务处理中的事务处理第29页,此课件共31页哦ADO.NETADO.NET中的事务处理中的事务处理 SqlTransaction t=null;/SqlTransaction t=null;/声名事务对象声名事务对象 try try con.Open();con.Open();/设置事务开始设置事务开始 t=con.BeginTransaction();t=con.BeginTransaction();/将事务和命令对象关连将事务和命令对象关连 cmd.Transaction=t;cmd.Transaction=t
19、;/执行命令产生事务执行命令产生事务cmd.ExecuteNonQuery();cmd.ExecuteNonQuery();/事务的提交事务的提交 t.Commit();t.Commit();catch(SqlException ex)catch(SqlException ex)事务回滚事务回滚t.Rollback();t.Rollback();第30页,此课件共31页哦小结小结ADO.NET的主要组件有哪些?如何使用SqlConnection连接到SQL2005Connection 对象的什么方法用来打开和关闭数据库连接?如何使用SqlCommand执行数据库命令?使用什么方法修改数据库数据?ExecuteNonQuery()方法返回什么?第31页,此课件共31页哦