您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 统计图表 > 《C__WinForm实践开发教程》chp6[1].数据库设计与开发
--------------基于C#语言主讲教师:钱哨本课学时:72课时联系方式:qianshao@bjjtxy.bj.cnWindows程序设计第六章、数据库设计与开发本章主要内容介绍6.1windows和窗体6.2VisualStutio.netIDE简介6.3事件处理CONTENT本章学习目标:•了解ADO.NET结构•了解ADO.NET的组件•使用Command对象和Connection对象•使用ADO.NET进行事务处理6.1ADO.NET简介以流的形式从文件中读写数据6.1ADO.NET简介以流的形式从文件中读写数据中央数据库要管理数据库,需要专门的软件应用程序MS-ACCESSSQL-ServerORACLE6.1ADO.NET简介中央数据库用户需要时,可以随时访问数据用户计算机向数据库服务器发送请求客户端不同的访问方法和技术6.1ADO.NET简介.NETFrameworkSystem.Data命名空间以ActiveX数据对象(ADO)为基础以XML(扩展标记语言)为格式传送和接收数据6.1.1ADO.NET的优点及主要对象•互操作性•性能•可伸缩性•标准化•可编程能力一、ADO.NET优点6.1.1ADO.NET的优点及主要对象二、ADO.NET对象Connection对象主要是开启程序和数据库之间的连结。没有利用连结对象将数据库打开,是无法从数据库中取得数据的。这个物件在ADO.NET的最底层,我们可以自己产生这个对象,或是由其它的对象自动产生。1、Connection对象6.1.1ADO.NET的优点及主要对象二、ADO.NET对象2、Command对象Command对象主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及呼叫存在数据库中的预存程序等。这个对象是架构在Connection对象上,也就是Command对象是透过连结到数据源6.1.1ADO.NET的优点及主要对象二、ADO.NET对象3、DataAdapter对象DataAdapter对象主要是在数据源以及DataSet之间执行数据传输的工作,它可以透过Command对象下达命令后,并将取得的数据放入DataSet对象中。这个对象是架构在Command对象上,并提供了许多配合DataSet使用的功能。6.1.1ADO.NET的优点及主要对象二、ADO.NET对象4、DataSet对象DataSet这个对象可以视为一个暂存区(Cache),可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来。DataSet的能力不只是可以储存多个Table而已,还可以透过DataAdapter对象取得一些例如主键等的数据表结构,并可以记录数据表间的关联。DataSet对象可以说是ADO.NET中重量级的对象,这个对象架构在DataAdapter对象上,本身不具备和数据源沟通的能力;也就是说我们是将DataAdapter对象当做DataSet对象以及数据源间传输数据的桥梁。6.1.1ADO.NET的优点及主要对象二、ADO.NET对象5、DataReader对象当我们只需要循序的读取数据而不需要其它操作时,可以使用DataReader对象。DataReader对象只是一次一笔向下循序的读取数据源中的数据,而且这些数据是只读的,并不允许作其它的操作。因为DataReader在读取数据的时候限制了每次只读取一笔,而且只能只读,所以使用起来不但节省资源而且效率很好。使用DataReader对象除了效率较好之外,因为不用把数据全部传回,故可以降低网络的负载。6.1.2ADO.NET的结构6.1.2ADO.NET的结构6.1.3ADO.NET对数据库的访问(1)数据库数据适配器数据集数据绑定控件WinForm选择连接和命令填充数据源将数据传递到用户界面时,ADO.NET采用XML格式数据已缓存6.1.3ADO.NET对数据库的访问(2)对于Insert,Update,Delete等单向操作应用程序数据库1、用Connection.Open打开数据库2、用DataAdaptor.Command或者Command.Execute执行命令3、关闭数据库Insert用InsertCommandDelete用DeleteCommandUpdate用UpdateCommand6.1.3ADO.NET对数据库的访问(3)应用程序数据库关闭数据库1、用Connection.Open建立连接2、用DataAdaptor.SelectCommand执行命令DataAdaptor.Fill对于Select的双向操作DataSet知识点小结•引入ADO.NET的原因•ADO.NET的优缺点•ADO.NET的组成结构•ADO.NET对数据库的调用过程6.1.4.NET数据提供程序1ConnectionADO.NETDataSet.NETFramework数据提供程序1、SQLClient2、OLEDB3、Oracle4、ODBC由以下各项组成的集合:6.1.4.NET数据提供程序2客户端服务器数据集2、将数据发送到数据集A、客户端修改数据集3、数据集传递给客户端B、将修改后的数据集传递给服务器1、客户端从服务器请求数据1,2,3是从服务器检索数据的过程A、B是对数据库修改的过程6.1.4.NET数据提供程序3•用于SQLServer的.NETFramework数据提供程序System.Data.SqlClient命名空间仅限于连接SQLServer数据库7.0或更高版本6.1.4.NET数据提供程序4•用于OLEDB的.NETFramework数据提供程序6.1.4.NET数据提供程序5•用于ODBC的.NETFramework数据提供程序的命名空间•用于Oracle的.NETFramework数据提供程序的命名空间System.Data.Odbc命名空间System.Data.OracleClient命名空间知识点小结•使用的名称空间–SQLServerusingSystem.Data.SqlClient–OLEDBusingSystem.Data.OleDb–OracleusingSystem.Data.OracleClient–ODBCusingSystem.Data.Odbc6.1.5Connection对象1.NETFramework数据提供程序Connection类SQL数据提供程序SqlConnectionOLEDB数据提供程序OleDbConnectionOracle数据提供程序OracleConnectionODBC数据提供程序OdbcConnection在ADO.NET中,必须显式关闭连接,才能释放实际的数据库连接6.1.5Connection对象2方法Close()Open()属性ConnectionStringDatabase6.1.5Connection对象2在工具栏之中,添加数据库若干的组件对象Connection对象4-3单击“数据”选项卡SqlConnection拖放sqlConnection1已添加新建连接…从列表中选择SQLServer指定用户名和密码最后选择数据库如果连接成功,则会显示一则消息连接数据库步骤•连接数据库的步骤:1、定义连接字符串2、创建Connection对象3、打开与数据库的连接SqlConnectionconnection=newSqlConnection(connString);连接字符串connection.Open();DataSource=服务器名;InitialCatalog=数据库名;UserID=用户名;Pwd=密码没有密码,可省略6.1.5Connection对象4使用代码编辑器SqlConnectionobjSqlConnection=newSqlConnection(server=SQLDB;uid=sa;pwd=password;database=pubs);objSqlConnection.Open();objSqlConnection创建的连接对象名称SQLDB存储“pubs”数据库的服务器名称,也可以写成IP地址,如123.101.220.1本地服务器可以有以下几种写法:1、(local)2、127.0.0.13、本地机子名称uid,pwd用户标识和密码知识点小结•Connection对象的作用•Connection对象的两种使用方法–拖拉控件–写代码•四种典型的连接方式的应用名称空间和连接字符串的写法–SqlConnection–OleDbConnection–OracleConnection–OdbcConnection6.1.6Command对象1数据库Command对象指定要对数据库执行的操作检索和操纵数据6.1.6Command对象2.NETFramework数据提供程序Command类SQL数据提供程序SqlCommandOLEDB数据提供程序OleDbCommandOracle数据提供程序OracleCommandODBC数据提供程序OdbcCommand与数据库建立连接之后,可以使用Command对象执行命令并从数据源返回结果6.1.6Command对象3方法ExecuteNonQuery()返回受影响的行数ExecuteScalar()返回第一行第一列ExecuteReader()返回DataReader类型值属性CommandText欲执行的内容,可以是SQL语句或者存储过程名称ConnectionCommandType命令类型Command对象6-4单击“数据”选项卡SqlCommand拖放已添加sqlCommand1将sqlConnection1设置为sqlCommand1的连接在CommandText属性中键入“InsertintoFlightDetailsvalues()”6.1.6Command对象6已添加“FlightDetails”表单击该表中所有字段旁边的框,以指定要在其中插入新值的列为每一列指定新值6.1.6Command对象4•用SQL语句的Command设置SqlCommandobjComm=newSqlCommand();objComm.CommandText=SQL语句;objComm.CommandType=CommandType.Text;objComm.Connection=objConnection;•用存储过程的Command设置SqlCommandobjComm=newSqlCommand();objComm.CommandText=“sp_DeleteName;objComm.CommandType=CommandType.StoredProcedure;objComm.Connection=objConnection;Sp_DeleteName是在SQLServer服务器上创建的存储过程6.1.6Command对象7使用代码编辑器SqlCommandobjSqlCommand=newSqlCommand(strSQL);objSqlConnection创建的Command对象名称strSQL任何有效的SQL语句综合示例•完成系统登录功能1、验证管理员的用户名和密码是否存在2、验证通过,显示管理员主窗体•处理登录按钮的Click事件•定义一个ValidateUser()方法•需要Connection和Command对象•分两步实现验证:1、建立数据库连接2、验证用户是否存在用户验证方法框架ValidateUser()方法框架1、验证的结果:通过,不通过返回值为bool型2、方法需要:用户名,密码,登录类型值方式传参3、不通过的原因:用户名或密码不存在、其他原因引用方式传参publicboolValidateUser(stringloginType,stringloginId,stringloginPwd,refstringmessage){}用户验证方法具体实现•第
本文标题:《C__WinForm实践开发教程》chp6[1].数据库设计与开发
链接地址:https://www.777doc.com/doc-4099209 .html