版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 ADO(Active Data Objects)是Microsoft公司 开发的用于数据库连接的一套组件模型, 是面向 对象的数据访问库,ADO.NET是ADO的升级版本, 提供对SQL SEVER等数据源的一致访问。数据使 用者可以通过ADO.NET来连接到这些数据源 (SQL SERVERACCESSOLE DB等),并检索、 操作和更新数据。 ADO.NET主要特点 ADO.NET引入了离线的数据结果集离线的数据结果集(Disconnected DataSet)这个概念,通过使用离线的数据结果集,程序员 更可以在数据库断开的情况下访问数据库。 两个组件: .NET Data Provi
2、der(数据提供程序) DataSet(数据结果集) ADO.NET的一个核心元素是 ,能够实现数据操作和对数据的快速访问。 包括ConnectionConnection、CommandCommand、DataReaderDataReader和和 DataAdapterDataAdapter四大类对象,其中,Connection对象提 供与数据源的连接;Command对象使你能够访问用于 返回数据、修改数据、运行存储过程以及发送或检 索参数信息的数据库命令;DataReader对象从数据 源中提供高性能的数据流;DataAdapter对象提供连 接DataSet对象和数据源的桥梁。 ADO.N
3、ET 是ADO.NET结构的另外一个核心组件, DataSet中包括一个或多个DataTable对象的集合,这些对象 由数据行和数据列以及主键、外键、约束和有关DataTable 对象中数据的关系信息组成。 关系图11-1 我们可以用趣味形象化的方式理解ADO.NET对象模型的 各个部分,如图所示,可以看出这些对象所处的地位和对象 间的逻辑关系。 数据库 Connection 对象 Comman d对象 DataAdapter Dataset 数据库好比水源,存储了大量的数据。 Connection好比伸入水中的进水笼头,保持与水的接 触,只有它与水进行了“连接”,其他对象才可以抽到 水。 C
4、ommand则像抽水机,为抽水提供动力和执行方法, 通过“水龙头”,然后把水返给上面的“水管”。 DataAdapter、DataReader就像输水管,担任着水的 传输任务,并起着桥梁的作用。DataAdapter 像一根输 水管,通过发动机,把水从水源输送到水库里进行保存。 DataReader 也是一种水管,和DataAdapter不同的是, DataReader不把水输送到水库里面,而是单向地直接把 水送到需要水的用户那里或田地里,所以要比在水库中 转一下更快更高效。 DataSet则是一个大水库,把抽上来的水按一定关 系的池子进行存放。即使撤掉“抽水装置”(断开连 接,离线状态),也
5、可以保持“水”的存在。这也正 是ADO.NET的核心。 DataTable则像水库中的每个独立的水池子,分别 存放不同种类的水。一个大水库由一个或多个这样的 水池子组成。 重点提示:释放数据库连接是数据库编程中非常重要的 操作,作为数据库价格的核心因素并发连接数是数 据库的宝贵资源,因此在使用数据库连接对象时,应保 证应用程序在最短时间释放连接。 .NET Framework 数据提供程序是专门为数据处理以 及快速地只进、只读访问数据而设计的组件。 ConnectionConnection Command Command DataAdapterDataAdapter DataReader Da
6、taReader SQL Server 提供程序 以下是每个数据提供程序所包含的主要类: SQL Server 数据提供程序位于System.Data.SqlClient命名空间。 是开启程序和数据库之间的连结 没有利用连接对象将数据库打开,是无法从数据库中 取得数据的 这个对象在ADO.NET的最底层 可以自己产生这个对象,或是由其它的对象自动产生 Connection Connection 对象与数据库连接对象与数据库连接 1. Connection对象的常用属性对象的常用属性 (1)ConnectionString:获取或设置用于打开数据库的字符串。 (2)DataBase:获取当前数据
7、库或连接打开后要使用的数据库的名称。 (3)DataSource:该属性用来设置要连接的数据源实例名称, 例如SQLServer的Local服务实例。 (4)State属性:属性:是一个枚举类型的值,用来表示同当前数据库的 连接状态 表 State的取值 2.Connection2.Connection对象的连接字符串对象的连接字符串 在ConnectionString连接字符串里,一般需要指定将要连接 数据源的种类、数据库服务器的名称、数据库名称、登录 用户名、密码、等待连接时间、安全验证设置等参数信息, 这些参数之间用分号隔开。 (1)Provider参数参数 Provider参数用来指定
8、要连接数据源的种类。如果使用的是SQL Server Data provider ,则不需要指定Provider参数,因为SQL Server DataProvider已经指定了所要连接的数据源是SQl Server服务器。 (2 2)ServerServer参数参数 Server参数用来指定需要连接的数据库服务器(或数据域)。比如 Server=(local),指定连接的数据库服务器是在本地。如果本地 的数据库还定义了实例名,Server参数可以写成 Server=(local)实例名。 另外,可以使用计算机名作为服务器的值。 如果连接的是远端的数据库服务器,Server参数可以写成 Ser
9、ver=IP或 “Server=远程计算机名”的形式。 Server参数也可以写成Data Source,比如Data Source=IP地址。 (3 3)DataBaseDataBase参数参数 DataBase参数用来指定连接的数据库名。比如DataBase=Master, 说明连接的数据库是Master,DataBase参数也可以写成 Initial Catalog,如Initial Catalog=Master。 (4 4)UidUid参数和参数和PwdPwd参数参数 Uid参数用来指定登录数据源的用户名,也可以写成UserID。 比如Uid(User ID)=sa,说明登录用户名是s
10、a。 Pwd参数用来指定连接数据源的密码,也可以写成Password。 比如Pwd(Password)=,说明登录密码是。 (5 5)Integrated SecurityIntegrated Security参数参数 Integrated Security参数用来说明登录到数据源时是否使用 SQL Server的集成安全验证。如果该参数的取值是True (或SSPI,或Yes),表示登录到SQL Server时使用Windows验证模 式,即不需要通过Uid和Pwd这样的方式登录。如果取值是False (或No),表示登录SQL Server时使用Uid和Pwd方式登录。 对象对象.Conn
11、ectionString= Server= (local); DataBase=Master;Uid =sa;Pwd=; 由于没有指定Provider,连接SQL Server数据库。需连接的 SQL Server数据库服务器是local,数据库是Master,用户名是sa,密 码为空。 3. Connection3. Connection对象的常用方法对象的常用方法 Connection类型的对象用来连接数据源。在SQL Server Data Provider 里叫SqlConnection。 SqlConnection conn = new SqlConnection(); /创建数据库
12、连接对象 注意:数据库连接必须小心,应该在最晚的时候建立连接,在最早 的时候关闭连接,以释放占用的内存和网络带宽资源。 Open方法:打开数据库连接。conn.Open(); Close方法:关闭与数据库的连接,这是关闭任何打开连接的首 选方法 。 nOpen和Close方法 都不带参数,均无返回值。 conn. ConnectionString = Data Source = (local); Initial Catalog = study;Integrated Security=true; 集成验证模式 SqlConnection conn = new SqlConnection();/创
13、建数据库连接对象 conn. ConnectionString = Data Source = (local); Initial Catalog = study;user id=sa;password=sa; ;/数据库连接字符串 conn. Open() ;/建立数据库连接 注意:只有当一个连接关闭以后才能把另一个不同的连接字符串赋注意:只有当一个连接关闭以后才能把另一个不同的连接字符串赋 值给值给Connection Connection 对象。如果不知道对象。如果不知道ConnectionConnection对象在某个时候是打对象在某个时候是打 开是关闭时,可以检查开是关闭时,可以检查C
14、onnectionConnection对象的对象的StateState属性,它的值可以是属性,它的值可以是 Open,Open,也可以是也可以是ClosedClosed,这样就可以知道连接是否是打开的。,这样就可以知道连接是否是打开的。 (1)启动visual studio .net,新建一个windows 应用程 序。 (2)从工具栏中拖动一个Button控件到页面中,将 ID设为btnconnect,Text属性为“点击连接数据库”。 (3)在Form1.cs文件中添加名称空间 using System.Data.SqlClient; (4)双击btnConnect控件,在Click事件相
15、关处理程序 btnconnect_click中输入以下代码: (5)按ctrl+f5运行项目,单击表单中的”点击连接 数据库“按钮,如果数据库连接成功,则将依次弹出 两个对话框。 (6)如果连接不成功,则会得到提示错误信息的页 面。 架构在Connection对象上 向数据库发出操作指令(增、删、改、查) 呼叫存在数据库中的预存程序等 透过连结到数据源的Connection对象来下命令 Connection连结到哪个数据库,Command对象的命 令就下到哪里 Command对象的常用属性有CommandType、CommandText 1.CommandType属性属性 CommandTyp
16、e属性用来获得或设置CommandText属性中的语句是 SQL语句、数据表名还是存储过程。该属性的取值有3个,见表 值说明 StoredProcedure 指示CommandType属性的值为存储过程的名称 TableDirect指示CommandType属性的值为一个或多个表的名 称只有OLE DB的.NET Framework数据提供程序才 支持TableDirect Text指示CommandType属性的值为SQL文本命令(默认) 2.CommandText属性属性 根据CommandType属性的不同取值,可以使用CommandText属性获 取或设置SQL语句、数据表名(仅限于O
17、LE DB数据库提供程序)或存 储过程 在SQL Server Data Provider里叫SqlCommand SqlCommand cmd=new SqlCommand( ); /创建命令对象创建命令对象 cmd.Connection=连接对象连接对象;/将已有连接赋给命令对象将已有连接赋给命令对象 cmd.CommandType=CommandType.Text; string sql=“select * from student”; cmd.CommandText=sql;/将已有命名文本赋给命令对象 执行不返回结果的命令,通常使用这个 命令执行插入、更新或者删除操作;通常使用它来执
18、行Update、 Insert、Delete语句。该方法返回值意义如下:对于Update、Insert、 Delete语句返回值为该命令所影响的行数,对于其它类型的语句,返 回值为-1。cmd.ExecuteNonQuery( ); 执行返回单个值的命令; 2、 SqlCommand对象的方法 命令对象构造完成后,就可以执行命令对数据库进行操作。 :释放资源 UpdateUpdate、InsertInsert、DeleteDelete语句中参数构造方式语句中参数构造方式 在这些语句中应该根据用户实际输入的信息进行处理,这 时候应使用参数化方式。 string sql=“Update stude
19、nt Set sName=userName Where ID=userid”; 有了包含参数的Command对象,需要为命令中的每一个参数创 建一个Parameter对象。SqlCommand类提供了一个Parameters集合属 性,用以为命令保存所有的参数,主要用到SqlParameter(是为 了SQL语句的安全,防止注入)。另外必须指出哪部分是参 数,可变参数要加前缀。 (1)Add方法 SqlParameter sp = new SqlParameter(username, Pudding); cmd.Parameters.Add(sp); sp = new SqlParameter
20、(userid, 1); cmd.Parameters.Add(sp); (2)AddRange方法 SqlParameter parameters = new SqlParameter new SqlParameter(userName, textBox1.Text), new SqlParameter(user id, textBox2.Text) ; cmd.Parameters.AddRange(parameters); 一次一笔向下循序的读取数据源中的数据 这些数据是只读的,并不允许作其它的操作 节省资源而且效率很好 可以降低网络的负载 架构在Command对象上,并提供了许多配合D
21、ataSet 使用的功能 在数据源与DataSet之间执行数据传输的工作 它可以透过Command对象下达命令后,并将取得的 数据放入DataSet对象中 为什么使用为什么使用 DataAdapterDataAdapter 如何将数据库的数据放在 DataSet 中? 数据库数据库 DataSet 数据集数据集 Connection 数据库连接数据库连接 DataAdapter 数据适配器数据适配器 这个对象架构在DataAdapter对象上 可以视为一个暂存区(Cache) 可以把从数据库中所查询到的数据保留起来 可以将整个数据库显示出来 可以储存多个Table 可以透过DataAdapte
22、r对象取得表结构 可以记录数据表间的关联 本身不具备和数据源沟通的能力 与数据库关系图 为什么使用为什么使用 DataSet DataSet 对象对象 应用程序应用程序 大量的数据大量的数据 来自多个数据源来自多个数据源 大批量的查询、修改数据怎么办? 想在断开数据库连接的情况下操作数据怎么办? 使用使用 DataSet 对象对象 什么是什么是 DataSet DataSet 对象对象 DataSet 数据集 简单理解为一个临时数据库 将数据源的数据保存在内存中 独立于任何数据库 生产线生产线 应用程序应用程序 驻留于内存,驻留于内存, 临时存储数据临时存储数据 类似的关系类似的关系 Data
23、SetDataSet结构结构 DataSet对象包含了DataTable和DataRelation类型的对象。 DataTable用来存储一张表里的数据,来映射数据库里 的表,其中的DataRows对象就用来表示表的字段结构以及 表里的一条数据。 DataRelation类型的对象则用来存储DataTable之间的约束 关系。 DataTable和DataRelation对象都可以用对象的集合 (Collection)对象类管理。 DataSet DataSet 的结构的结构 DataSet 的基本结构的基本结构 DataSet DataTable DataColumnCollectionDa
24、taRowCollection DataColumn DataRow DataTableCollection 数据集数据集 数据表的集合数据表的集合 数据表数据表 数据列的集合数据列的集合 数据行的集合数据行的集合 数据列数据列 数据行数据行 DataSet DataSet 的结构的结构 GradeTable ClassTable StudentTable idnameclas s sex 1小菲5女 2小薇3女 3小强6男 DataTableCollection 数据表集合数据表集合 DataTable 数据表数据表 DataRowCollection 数据行集合数据行集合 DataRow
25、数据行数据行 DataColumnCollection 数据列集合数据列集合 DataColumn 数据列数据列 DataTable具有以下常用属性。 (1)Rows:用来表示该DataTable的DataRow对象的集合, 也就是对应着相应数据表里的所用记录。程序员能通过此属性,依次 访问DataTable里的每条记录。该属性有如下方法。 Add:把DataTable的AddRow方法创建的行追加到末尾。 InsertAt:把DataTable的AddRow方法创建的行追加到索引号指定 的位置。 Remove:删除指定的DataRow对象,并从物理上把数据源里的对应 数据删除。 Remove
26、At:根据索引号,直接删除数据。 (2)Columns:用来表示该DataTable的DataColumn对象的集合,通过 此属性,能依次访问DataTable里的每个字段。 shuju.Tablesuserinfo.Rows.Count shuju.Tablesuserinfo.Rows01 如何创建如何创建 DataSet DataSet 对象对象 创建一个 DataSet DataSet dataSet = new DataSet(); DataSet dataSet = new DataSet(“GuestBook); DataSet 数据集对象数据集对象 = new DataSet(
27、数据集的名称字符串数据集的名称字符串); 可选的可选的 如何填充数据集如何填充数据集 使用 DataAdapter 对象填充数据集 使用使用 Fill() 方法方法填充填充 DataSet 中的表中的表 使用使用 Connection 连接数据源连接数据源 Connection DataAdapter 的的 Fill() 方法方法 填充数据集填充数据集 SqlDataAdapter 对象名对象名 = new SqlDataAdapter(); 创建创建 SqlDataAdapter 对象对象1 DataAdapter对象对象. Fill(数据集对象数据集对象, 数据表名称字数据表名称字 符串符串); 填充填充 DataSet2 如何保存如何保存 DataSet DataSet 中的数据中的数据 把数据集中修改过的数据提交到数据源 dataAdapter.Update(dataSet,Teacher); DataAdapter 的的 Update() 方法方法 或者直接调用或者直接调用sqlCommandsqlCommand对象的对象的 ExecuteNonQuery()方法()方法 Connection 数据库程序设计的步骤总结:数据库程序设计的步骤总结: 1.创建一个数据库连接对象并打开创建一个数据库连接对象并打开 SqlConnection conn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金银珠宝销售协议三篇
- 葡萄园租赁合同三篇
- 2024年光合细菌菌剂项目规划申请报告
- 2024年黑龙江嫩江市部分事业单位招聘31人历年管理单位遴选500模拟题附带答案详解
- 教学目标与实施方案计划
- 智慧农业与农产品加工投资合同三篇
- 建设全面美术教学质量体系的规划计划
- 建筑原料合同范本
- 陈列布展合同范本
- 借欠合同范本
- 四川省成都市2024-2025学年八年级上学期期中考试英语试卷(四)
- 大学生就业指导(第2版)教学课件10
- 【课件】跨学科实践:探索厨房中的物态变化问题+课件人教版(2024)物理八年级上册
- 2024译林版英语初一上单词默写表
- 八年级物理上册5_2生活中的透镜教学设计新版新人教版
- 金属构件失效分析精简版
- 雷诺尔JJR系列软起动器说明书
- 中国联通GPON设备技术规范
- 中学物理社团活动记录(共20页)
- 软件正版化工作整改情况汇报
- 浅谈针织物线密度的常用测试方法及检测标准
评论
0/150
提交评论