版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库访问技术ADO.NET数据库访问计算机科学系林加华掌握ADO.NET的原理与结构掌握Connection类的使用掌握Command类的使用掌握DataReader类的使用掌握DataAdapter类的使用掌握DataSet、DataTable、DataRow的使用掌握以断开连接和连接的方式操作数据库目标21.ADO.NET简介4-1以流的形式从文件中读写数据少量数据不适用于大量数据3ADO.NET
简介4-2以流的形式从文件中读写数据少量数据不适用于大量数据中央数据库要管理数据库,需要专门的软件应用程序RDBMSMS-ACCESSSQL-ServerORACLE4ADO.NET
简介4-3中央数据库用户需要时,可以随时访问数据用户计算机向数据库服务器发送请求客户端不同的访问方法和技术ADO.NET5ADO.NET
简介4-4.NETFrameworkADO.NETSystem.Data
命名空间以ActiveX
数据对象(ADO)为基础以XML(扩展标记语言)为格式传送和接收数据6ADO.NET简介
ADO.NET编程模型用于对关系或非关系型数据源的操作。ADO(ActiveXDataObject),是一个用于存取数据源的COM组件。ADO.NET在很多方面和ADO比较相近。ADO.NET的特征:非连接数据体系在数据集中缓存数据用XML进行数据传送通过数据命令和数据库相互作用7
ADO.NET中的命名空间
System.Data(这个空间必须要引入)System.Data.OLEDBSystem.Data.SQLClientSystem.Data.OracleClient
System.Data.SqlSystem.Data.SqlTypesMicrosoft.SqlServer.ServerSystem.Transactions8ADO.NET结构模型
ADO.NET包括两个核心组件:DataSet和数据提供程序,用于实现数据操作和数据访问的分离。9ADO.NET
对数据库的访问(3-1)将数据传递到用户界面时,ADO.NET
采用XML
格式数据已缓存断开式数据结构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.Open建立连接2、用DataAdaptor.SelectCommand
执行命令DataAdaptor.Fill对于Select的双向操作DataSet12.NET数据提供程序5-1ConnectionCommandDataReaderDataAdapterADO.NETDataSet.NETFramework
数据提供程序
1、SQLClient2、OLEDB3、Oracle4、ODBC由以下各项组成的集合:13.NET数据提供程序5-2
客户端服务器数据集2、将数据发送到数据集A、客户端修改数据集3、数据集传递给客户端B、将修改后的数据集传递给服务器1、客户端从服务器请求数据1,2,3是从服务器检索数据的过程A、B是对数据库修改的过程14.NET数据提供程序5-3用于SQLServer
的.NETFramework数据提供程序System.Data.SqlClient
命名空间仅限于连接SQLServer数据库7.0
或更高版本15SQLServer2005
SQLServer是微软公司提供的一个安全、可靠、高效、用于企业数据管理和商业智能应用的平台。SQLServer
配置管理器SQLServer
资源管理器16ADO.NET的核心对象
ADO.NET有以下几个核心组件:ConnectionCommandDataReaderDataAdapterDataSet17Connection-1连接不同数据库的连接类:OleDbConnection类:在System.Data.Oledb命名空间,主要用于连接Access、SQLServer6.5以下版本的数据库OdbcConnection类:在System.Data.Odbc命名空间,用于连接ODBC数据源SqlConnection类:在System.Data.SqlClient命名空间,用于连接SQLServer数据库OracleConnecton类:在System.Data.OracleClient命名空间,用于连接Oracle数据库连接字符串必须提供3个信息:数据库所在服务器的位置(DataSource);数据库的名称(InitialCatalog);数据库的身份验证方式(Windows集成验证或者是SQLServer身份验证)。18Connection
对象5-2方法Close()Open()属性ConnectionStringDatabaseConnectionstring:属性指定要与那个数据库进行相连,数据库名是什么?用户名和密码是什么?19Connection-2连接字符串示例:创建Connection对象打开和关闭连接:DataSource=localhost;InitialCatalog=Haier;IntegratedSecurity=SSPI;
Windows集成验证
DataSource=localhost;InitialCatalog=Haier;userid=sa;password=123456;SQLServer身份验证
DimconnStringAsString=_ "DataSource=localhost;InitialCatalog=Haier;userid=sa;password=123456"DimconnAsSqlConnection=newSqlConnection()conn.ConnectionString=connStringDimconnAsSqlConnection=newSqlConnection("DataSource=localhost;_ InitialCatalog=Haier;userid=sa;password=123456"conn.Open() '打开连接conn.Close() '关闭连接20应用程序配置文件
app.config是应用程序配置文件app.config文件中的connectionStrings标签配置连接字符串通过ConfigurationManager.ConnectionStrings集合可获得连接字符串:<configuration>……<!--数据库连接字符串--><connectionStrings><addname="MyConnectionString"connectionString="DataSource=localhost; InitialCatalog=Haier;IntegratedSecurity=SSPI"/></connectionStrings></configuration>DimconnStringAsString=ConfigurationManager._
ConnectionStrings("MyConnectionString").ConnectionString添加System.Configuration命名空间的引用:“项目”→“添加引用”,选择“.NET”选项卡下的“System.Configuration”组件
21Command
对象7-1数据库Command
对象指定要对数据库执行的操作检索和操纵数据Command22Command
对象7-4用SQL语句的Command设置DimobjCommAsNewSqlCommand()objComm.CommandText="SQL语句"objComm.CommandType=CommandType.Text
objComm.Connection=objConnection用存储过程的Command设置DimobjCommAsNewSqlCommand()objComm.CommandText=“sp_DeleteName"objComm.CommandType=CommandType.StoredProcedure
objComm.Connection=objConnectionSp_DeleteName是在SQLServer服务器上创建的存储过程23
使用Command-1DimcmdAsSqlCommand=NewSqlCommand()cmd.Connection=concmd.CommandType=CommandType.Textcmd.CommandText="SELECT*FROMUserDetails"使用SqlCommand对象执行一个SQL查询语句:
使用SqlCommand对象执行一个存储过程:DimcmdAsSqlCommand=NewSqlCommand("SELECT*FROMBookInfo",con)DimcmdAsSqlCommand=NewSqlCommand("GetBooks",con)cmd.CommandType=CommandType.StoredProcedure24Command对象提供了3种执行方法:ExecuteReader()
用于执行SELECT命令,并返回一个DataReader对象。ExecuteNonQuery()
用于执行非SELECT的命令,如INSERT、DELETE或者UPDATE命令,返回命令所影响的数据行数。也可以用ExecuteNonQuery()方法来执行一些数据定义命令,如新建、更新、删除数据库对象(如表、索引等)。ExecuteScalar()
用于执行SELECT查询命令,返回数据中第一行第一列的值。常用于执行带有COUNT()或者SUM()函数的SELECT命令。
使用Command-225DataReader
DataReader对象用来读取数据。DataReader的常用方法:获取DataReader对象:读取数据:关闭DataReader对象方法返回值功能说明Close()Void关闭数据读取器。已重载NextResult()Boolean当读取批量的SQL语句的结果时,前进到下一个结果集,如果有更多的结果集,将返回True。有重载Read()Boolean前进到下一条记录。如果有记录,将返回True'通过Command的ExecuteReader()方法可以得到一个填充数据的DataReader对象
reader=cmd.ExecuteReader()reader("Pwd") '通过列名reader(0) '通过列的索引,索引从0开始reader.Close()26DataReader对象功能:提供一种只读的、向前的数据访问方法。使用DataReader对象的常用步骤:1、创建数据库连接:
dimconnectstrasstring
connectstr="server=localhost;uid=sa;pwd=;database=pubs"
DimobjConnectionasnewsqlconnection(connectstr)2、打开连接:
objConnection.Open()3、使用Reader对象执行SQL语句:
DimobjCommandAsNewSqlCommand("Select*fromAuthorswherestate='CA'",objConnection)
DimobjReaderAsSqlDataReader=objCommand.ExecuteReader()
27DataReader对象(2/3)4、用read()方法检测查询结果是否有记录
WhileobjReader.Read()
...
endwhile5、关闭reader对象,关闭数据库连接
objReader.Close()
objConnection.Close()28DataAdapterDataAdapter也是数据提供程序的一个子组件。与Connection和Command类一样,DataAdapter类也存在于access、OLEDB、SQLServer和Oracle中DataAdapter类是数据库和程序之间的桥梁,它可以执行Command对象,从数据库中检索数据,再填充到DataSet对象中,或将DataSet对象插入、更新和删除数据库中DataAdapter用于填充DataSet和更新数据源。29DataSet
dataset可以看成是DataTable的集合.用于存储多个表.
具有类似数据库的结构:DataSet则是将数据一次性加载在内存中.抛弃数据库连接.充分利用了客户端资源也大大降低了数据库服务器的压力
微软公司在推出DataSet时就考虑到各种数据源的多样性、复杂性。在.Net中,无论什么类型数据源,它都会提供一致的关系编程模型,好处就是屏蔽了不同数据库之间的差异,从而获取一致的编程模型。
30CommandBuilder创建适配器的命令生成器DimcmdbAsSqlCommandBuilder=NewSqlCommandBuilder(adapter)命令生成器的作用:使用CommandBuilder需要注意以下几点:1、只有当DataAdapter操作单个数据库表时,才可以利用CommandBuilder对象自动生成DataAdapter的DeleteCommand、InsertCommand和UpdateCommand。2、为了自动生成命令,必须设置SelectCommand属性。CommandBuilder的作用是自动生成适配器的插入、更新、删除的SQL语句因此在创建CommandBuilder的时候需要将适配器作为构造函数的参数31DataAdapter
DataAdapter常用的属性和方法:属性或方法功能说明SelectCommand属性查询数据的命令InsertCommand属性插入数据的命令UpdateCommand属性更新数据的命令DeleteCommand属性删除数据的命令Fill()方法用于填充或刷新DataSetUpdate()方法将DataSet中的数据更新到数据库里DimadapterAsSqlDataAdapter=NewSqlDataAdapter("Select*fromUserDetails",conn)32DataSet
创建数据集对象:填充数据集:访问数据集中的表:DimdsAsDataSet=NewDataSet()adapter.Fill(ds)adapter.Fill(ds,"User")'将数据填充到数据集中,并给表起一个标识名"User"ds.Tables(0)‘数据集中的第一张表ds.Tables("User")'数据集中的标识名为"User"的表33DataTable
和DataRow
DataTable表示数据集中的表,它是DataSet中常用的对象,与数据库中的表的概念十分相似。DataRow表示是表中的数据行:'创建一个新行DimrowAsDataRow=userTabel.NewRow()'通过列的索引,给列赋值row(0)=12'通过列名,给列赋值
row("UserName")="zkl" '增加行Table.Rows.Add(Row) ‘创建一个新表DimtableAsDataTable=DataSet.tables("User")
34ADO.NET有以下几个核心组件组成:ConnectionCommandDataReaderDataAdapterDataSetConnection用于创建应用程序和数据库之间的连接Command用于执行SQL语句和存储过程,实现对数据的添加、删除、更新、查询等各种操作。小结-135小结-2DataReader是一种常用的数据读取工具,能够以连接的、向前的方式访问数据,可以执行SQL语句或者存储过程。DataAdapter用于填充DataSet和更新数据源,可以在DataSet对象和数据源之间进行数据交互。DataSet对象用于缓存数据库中的数据,具有类似数据库的结构,如表、列、关系和约束等。3637填充GridView1的代码如下:DimconstrAsString="server=PC-201204071320;database=travel;uid=linjiahua;pwd=830117“DimconnAsSqlConnection=NewSqlConnection(constr)conn.Open()DimdaAsSqlDataAdapterda=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()DimconnAsSqlConnectionDimconstrAsStringconstr="server=PC-201204071320;database=travel;uid=linjiahua;pwd=830117"conn=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)DropDownList1.SelectedValue=dr.GetString(2)dr.Close()conn.Close()39“更新”功能的代码如下:DimconnAsSqlConnectionDimconstrAsStringconstr="server=PC-201204071320;database=travel;uid=linjiahua;pwd=830117"conn=NewSqlConnection(constr)conn.Open()DimsqlAsString
sql="updatebase_positionsetpName='"+TextBox2.Text+"',dept_id='"+DropDownList1.SelectedValue+"'wherepositi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025公司向银行借款合同范本
- 2025毕业生就业的合同书
- 2024年导热材料项目提案报告
- 创新教育游戏在提升小学生阅读理解中的应用
- 企业文化创新教育行业的探索与实践
- 儿童早期认知发展与营养的关系
- 2025融资租赁版合同书
- 2024年微粉碎、超微粉碎设备项目立项申请报告模板
- 2024年专用票清分机项目提案报告
- 健康阅读的推广策略如何让经典走入孩子的世界
- 手机音腔设计指南
- 某机械厂降压变电所的电气设计参考(电气工程课程设计)
- 钢结构基本原理试习题及答案
- 同分异构现象和同分异构体
- 公安局辅警人员登记表
- 赛事活动闭幕式及颁奖仪式流程及执行脚本
- (完整word版)网络优化测试报告
- 《金字塔原理》
- 无机材料科学基础教程(第二版)课后答案
- 第《6》章层压成型工艺
- 海船工作时间表及休息记录表
评论
0/150
提交评论