Cnet数据库访问课件

上传人:新** 文档编号:576479602 上传时间:2024-08-20 格式:PPT 页数:43 大小:847.50KB
返回 下载 相关 举报
Cnet数据库访问课件_第1页
第1页 / 共43页
Cnet数据库访问课件_第2页
第2页 / 共43页
Cnet数据库访问课件_第3页
第3页 / 共43页
Cnet数据库访问课件_第4页
第4页 / 共43页
Cnet数据库访问课件_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《Cnet数据库访问课件》由会员分享,可在线阅读,更多相关《Cnet数据库访问课件(43页珍藏版)》请在金锄头文库上搜索。

1、数据库访问技术ADO.NET数据库访问计算机科学系计算机科学系 林加华林加华掌握ADO.NET的原理与结构掌握Connection类的使用掌握Command类的使用掌握DataReader类的使用掌握DataAdapter类的使用掌握DataSet、DataTable、DataRow的使用掌握以断开连接和连接的方式操作数据库目标21.ADO.NET简介4-1以流的形式从文件中读写数据3ADO.NET简介4-2以流的形式从文件中读写数据中央数据库中央数据库 要管理数据库,需要专门的软件应用程序MS-ACCESSSQL-ServerORACLE4ADO.NET简介4-3中央数据库中央数据库用户需要

2、时,可以随时访问数据用户计算机向数据库服务器发送请求客户端不同的访问方法和技术5ADO.NET简介4-4.NETFrameworkSystem.Data命名空间以ActiveX数据对象(ADO)为基础以XML(扩展标记语言)为格式传送和接收数据6ADO.NET简介ADO.NET编程模型用于对关系或非关系型数据源的操作。ADO(ActiveXDataObject),是一个用于存取数据源的COM组件。ADO.NET在很多方面和ADO比较相近。ADO.NET的特征:p非连接数据体系非连接数据体系 p在数据集中缓存数据在数据集中缓存数据 p用用XML进行数据传送进行数据传送 p通过数据命令和数据库相互

3、作用通过数据命令和数据库相互作用 7ADO.NET中的命名空间System.Data(这个空间必须要引入)System.Data.OLEDBSystem.Data.SQLClientSystem.Data.OracleClientSystem.Data.SqlSystem.Data.SqlTypesMicrosoft.SqlServer.ServerSystem.Transactions8ADO.NET结构模型ADO.NET包括两个核心组件:DataSet和数据提供程序,用于实现数据操作和数据访问的分离。9ADO.NET对数据库的访问(3-1)将数据传递到用户界面时,ADO.NET采用XML格

4、式数据已缓存10ADO.NET对数据库的访问(3-2)对于Insert,Update,Delete等单向操作应用程序应用程序应用程序应用程序 数据库数据库数据库数据库1、用Connection.Open打开数据库2、用DataAdaptor.Command或者Command.Execute执行命令3、关闭数据库Insert用InsertCommandDelete用DeleteCommandUpdate用UpdateCommand11ADO.NET对数据库的访问(3-3)应用程序应用程序应用程序应用程序 数据库数据库数据库数据库关闭数据库关闭数据库1、创建连接用、创建连接用Connection

5、.Open建立连接建立连接2、用、用DataAdaptor.SelectCommand 执行命令执行命令DataAdaptor.Fill对于Select的双向操作DataSet12.NET数据提供程序5-1ConnectionConnectionCommandCommandDataReaderDataReaderDataAdapterDataAdapterADO.NETDataSet.NET Framework 数据提供程序数据提供程序 1、SQLClient2、OLEDB3、Oracle4、ODBC由以下各项组成的集合:13.NET数据提供程序5-2客户端服务器数据集2、将数据发送到数据集A

6、、客户端修改数据集3、数据集传递给客户端B、将修改后的数据集传递给服务器1、客户端从服务器请求数据1,2,3是从服务器检索数据的过程A、B是对数据库修改的过程14.NET数据提供程序5-3用于SQLServer的.NETFramework数据提供程序System.Data.SqlClient命名空间仅限于连接SQLServer数据库7.0或更高版本15SQLServer2005SQLServer是微软公司提供的一个安全、可靠、高效、用于企业数据管理和商业智能应用的平台。SQLServer配置管理器SQLServer资源管理器16ADO.NET的核心对象ADO.NET有以下几个核心组件:pCon

7、nectionpCommandpDataReaderpDataAdapterpDataSet17Connection-1连接不同数据库的连接类:pOleDbConnection类:在类:在System.Data.Oledb命名空间,命名空间,主要用于连接主要用于连接Access、SQL Server 6.5以下版本的数据库以下版本的数据库pOdbcConnection类:在类:在System.Data.Odbc命名空间,用命名空间,用于连接于连接ODBC数据源数据源pSqlConnection类:在类:在System.Data.SqlClient命名空间,命名空间,用于连接用于连接SQL Se

8、rver数据库数据库pOracleConnecton类:在类:在System.Data.OracleClient命名空命名空间,用于连接间,用于连接Oracle数据库数据库连接字符串必须提供3个信息:p数据库所在服务器的位置(数据库所在服务器的位置(Data Source););p数据库的名称(数据库的名称(Initial Catalog););p数据库的身份验证方式(数据库的身份验证方式(Windows集成验证或者是集成验证或者是SQL Server身份验证)。身份验证)。18Connection对象5-2方法Close()Close()Open()Open()属性ConnectionStr

9、ingConnectionStringDatabaseDatabaseConnectionstring:属性指定要与那个数据库进行相连,数据库名是什么?用户名和密码是什么?:属性指定要与那个数据库进行相连,数据库名是什么?用户名和密码是什么?19Connection-2连接字符串示例:创建Connection对象打开和关闭连接:DataSource=localhost;InitialCatalog=Haier;IntegratedSecurity=SSPI; Windows集成验证集成验证 DataSource=localhost;InitialCatalog=Haier;userid=sa;

10、password=123456;SQL Server身份验身份验证证 DimconnStringAsString=_DataSource=localhost;InitialCatalog=Haier;userid=sa;password=123456DimconnAsSqlConnection=newSqlConnection()conn.ConnectionString=connStringDimconnAsSqlConnection=newSqlConnection(DataSource=localhost;_InitialCatalog=Haier;userid=sa;password=

11、123456conn.Open()打开连接conn.Close()关闭连接20应用程序配置文件app.config是应用程序配置文件app.config文件中的connectionStrings标签配置连接字符串通过ConfigurationManager.ConnectionStrings集合可获得连接字符串:DimconnStringAsString=ConfigurationManager._ConnectionStrings(MyConnectionString).ConnectionString添加添加System.Configuration命名空间的引命名空间的引用用 :“项目项目

12、”“添加引用添加引用” ,选择,选择“.NET”选项卡下的选项卡下的“System.Configuration”组件组件 21Command对象7-1数据库数据库数据库数据库Command对象指定要对数据库执行的操作检索和操纵数据22Command对象7-4用SQL语句的Command设置DimobjCommAsNewSqlCommand()objComm.CommandText=SQL语句objComm.CommandType=CommandType.TextobjComm.Connection=objConnection用存储过程的Command设置DimobjCommAsNewSqlCo

13、mmand()objComm.CommandText=“sp_DeleteNameobjComm.CommandType=CommandType.StoredProcedureobjComm.Connection=objConnectionSp_DeleteName是在SQLServer服务器上创建的存储过程23使用Command-1DimcmdAsSqlCommand=NewSqlCommand()cmd.Connection=concmd.CommandType=CommandType.Textcmd.CommandText=SELECT*FROMUserDetails使用SqlComma

14、nd对象执行一个SQL查询语句: 使用SqlCommand对象执行一个存储过程:DimcmdAsSqlCommand=NewSqlCommand(SELECT*FROMBookInfo,con)DimcmdAsSqlCommand=NewSqlCommand(GetBooks,con)cmd.CommandType=CommandType.StoredProcedure24Command对象提供了3种执行方法:pExecuteReader()用于执行用于执行SELECT命令,并返回一个命令,并返回一个DataReader对象。对象。pExecuteNonQuery()用于执行非用于执行非SEL

15、ECT的命令,如的命令,如INSERT、DELETE或者或者UPDATE命令,返回命令所影响的数据行数。也可以用命令,返回命令所影响的数据行数。也可以用ExecuteNonQuery()方法来执行一些数据定义命令,如新建、更新、删除数据库对方法来执行一些数据定义命令,如新建、更新、删除数据库对象(如表、索引等)。象(如表、索引等)。pExecuteScalar() 用于执行用于执行SELECT查询命令,返回数据中第一行第一列的值。常查询命令,返回数据中第一行第一列的值。常用于执行带有用于执行带有COUNT()或者或者SUM()函数的函数的SELECT命令。命令。使用Command-225Dat

16、aReaderDataReader对象用来读取数据。DataReader的常用方法:获取DataReader对象:读取数据:关闭DataReader对象方法方法返回值返回值功能说明功能说明Close()Void关闭数据读取器。已重载NextResult()Boolean当读取批量的SQL语句的结果时,前进到下一个结果集,如果有更多的结果集,将返回True。有重载Read()Boolean前进到下一条记录。如果有记录,将返回True通过Command的ExecuteReader()方法可以得到一个填充数据的DataReader对象 reader=cmd.ExecuteReader()reader

17、(Pwd)通过列名reader(0) 通过列的索引,索引从0开始reader.Close()26DataReader对象功能:提供一种只读的、向前的数据访问方法。功能:提供一种只读的、向前的数据访问方法。使用使用DataReader对象的常用步骤:对象的常用步骤:1、创建数据库连接:、创建数据库连接:dimconnectstrasstringconnectstr=server=localhost;uid=sa;pwd=;database=pubsDimobjConnectionasnewsqlconnection(connectstr)2、打开连接:、打开连接:objConnection.Op

18、en()3、使用、使用Reader对象执行对象执行SQL语句:语句:DimobjCommandAsNewSqlCommand(Select*fromAuthorswherestate=CA,objConnection)DimobjReaderAsSqlDataReader=objCommand.ExecuteReader()27DataReader对象(2/3)4、用read()方法检测查询结果是否有记录WhileobjReader.Read().endwhile5、关闭reader对象,关闭数据库连接objReader.Close()objConnection.Close()28DataAd

19、apterDataAdapter也是数据提供程序的一个子组件。与Connection和Command类一样,DataAdapter类也存在于access、OLEDB、SQLServer和Oracle中DataAdapter类是数据库和程序之间的桥梁,它可以执行Command对象,从数据库中检索数据,再填充到DataSet对象中,或将DataSet对象插入、更新和删除数据库中DataAdapter用于填充DataSet和更新数据源。29DataSetdataset 可以看成是可以看成是DataTable的集合的集合.用于存储多个表用于存储多个表. 具有具有类似数据库的结构:类似数据库的结构:Da

20、taSet则是将数据一次性加载在内存中则是将数据一次性加载在内存中.抛弃数据库连接抛弃数据库连接.充充分利用了客户端资源也大大降低了数据库服务器的压力分利用了客户端资源也大大降低了数据库服务器的压力 微软公司在推出微软公司在推出DataSet时就考虑到各种数据源的多样性、复时就考虑到各种数据源的多样性、复杂性。在杂性。在.Net中,无论什么类型数据源,它都会提供一致的关中,无论什么类型数据源,它都会提供一致的关系编程模型,好处就是屏蔽了不同数据库之间的差异,从而系编程模型,好处就是屏蔽了不同数据库之间的差异,从而获取一致的编程模型获取一致的编程模型。30CommandBuilder创建适配器的

21、命令生成器DimcmdbAsSqlCommandBuilder=NewSqlCommandBuilder(adapter)命令生成器的作用:使用CommandBuilder需要注意以下几点:1、只有当、只有当DataAdapter操作单个数据库表时,才可以利用操作单个数据库表时,才可以利用CommandBuilder对对象自动生成象自动生成DataAdapter的的DeleteCommand、InsertCommand和和UpdateCommand。2、为了自动生成命令,必须设置、为了自动生成命令,必须设置SelectCommand属性。属性。CommandBuilder的作用是自动生成适配器

22、的插入、更新、删除的SQL语句因此在创建CommandBuilder的时候需要将适配器作为构造函数的参数31DataAdapterDataAdapter常用的属性和方法:属性或方法属性或方法功能说明功能说明SelectCommand属性查询数据的命令InsertCommand属性插入数据的命令UpdateCommand属性更新数据的命令DeleteCommand属性删除数据的命令Fill()方法方法用于填充或刷新DataSetUpdate()方法方法将DataSet中的数据更新到数据库里DimadapterAsSqlDataAdapter=NewSqlDataAdapter(Select*fr

23、omUserDetails,conn)32DataSet创建数据集对象:填充数据集:访问数据集中的表:DimdsAsDataSet=NewDataSet()adapter.Fill(ds)adapter.Fill(ds,User)将数据填充到数据集中,并给表起一个标识名Userds.Tables(0)数据集中的第一张表ds.Tables(User)数据集中的标识名为User的表33DataTable和DataRowDataTable表示数据集中的表,它是DataSet中常用的对象,与数据库中的表的概念十分相似。DataRow表示是表中的数据行:创建一个新行DimrowAsDataRow=use

24、rTabel.NewRow()通过列的索引,给列赋值row(0)=12通过列名,给列赋值row(UserName)=zkl增加行Table.Rows.Add(Row)创建一个新表DimtableAsDataTable=DataSet.tables(User) 34ADO.NET有以下几个核心组件组成:pConnectionpCommandpDataReaderpDataAdapterpDataSetConnection用于创建应用程序和数据库之间的连接Command用于执行SQL语句和存储过程,实现对数据的添加、删除、更新、查询等各种操作。小结-135小结-2DataReader是一种常用的数

25、据读取工具,能够以连接的、向前的方式访问数据,可以执行SQL语句或者存储过程。DataAdapter用于填充DataSet和更新数据源,可以在DataSet对象和数据源之间进行数据交互。DataSet对象用于缓存数据库中的数据,具有类似数据库的结构,如表、列、关系和约束等。3637填充GridView1的代码如下:DimconstrAsString=server=PC-2;database=travel;uid=linjiahua;pwd=830117“DimconnAsSqlConnection=NewSqlConnection(constr)conn.Open()DimdaAsSqlDat

26、aAdapterda=NewSqlDataAdapter(select*frombase_Position,conn)DimdsAsDataSet=NewDataSet()da.Fill(ds)GridView1.DataSource=dsGridView1.DataBind()conn.Close()38GridView1中的“选择”功能代码如下:DimindexAsInteger=e.NewSelectedIndexTextBox1.Text=GridView1.DataKeys(index).Value.ToString()DimconnAsSqlConnectionDimconstrA

27、sStringconstr=server=PC-2;database=travel;uid=linjiahua;pwd=830117conn=NewSqlConnection(constr)conn.Open()Dimsql1AsString=select*frombase_Positionwhereposition_id=+TextBox1.Text+“DimcmdAsSqlCommand=NewSqlCommand(sql1,conn)DimdrAsSqlDataReader=cmd.ExecuteReader()dr.Read()TextBox2.Text=dr.GetString(1)

28、DropDownList1.SelectedValue=dr.GetString(2)dr.Close()conn.Close()39“更新”功能的代码如下:DimconnAsSqlConnectionDimconstrAsStringconstr=server=PC-2;database=travel;uid=linjiahua;pwd=830117conn=NewSqlConnection(constr)conn.Open()DimsqlAsStringsql=updatebase_positionsetpName=+TextBox2.Text+,dept_id=+DropDownList

29、1.SelectedValue+whereposition_id=+TextBox1.Text+DimcmdAsSqlCommand=NewSqlCommand(sql,conn)cmd.ExecuteNonQuery()Label4.Text=恭喜您,数据更新成功!conn.Close()40“删除”功能代码如下:DimconnAsSqlConnectionDimconstrAsStringconstr=server=PC-2;database=travel;uid=linjiahua;pwd=830117conn=NewSqlConnection(constr)conn.Open()Dim

30、sqlAsStringsql=deletefrombase_positionwhereposition_id=+TextBox1.Text+DimcmdAsSqlCommand=NewSqlCommand(sql,conn)cmd.ExecuteNonQuery()TextBox1.Text=TextBox2.Text=Label4.Text=恭喜您,数据删除成功!conn.Close()41“添加”功能代码如下:DimconnAsSqlConnectionDimconstrAsStringconstr=server=PC-2;database=travel;uid=linjiahua;pwd=830117conn=NewSqlConnection(constr)conn.Open()DimcmdAsSqlCommand=NewSqlCommand(insertintobase_position(position_id,pName,dept_id)values(+TextBox1.Text+,+TextBox2.Text+,+DropDownList1.SelectedValue+),conn)cmd.ExecuteNonQuery()Response.Write(数据添加成绩)conn.Close()42 谢 谢!43

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号