ADO NET 基础知识(一)
- 格式:docx
- 大小:93.89 KB
- 文档页数:3
⼀、概要是.NET框架中的重要组件,主要⽤于完成C#应⽤程序访问数据库。
⼆、的组成①System.Data → DataTable,DataSet,DataRow,DataColumn,DataRelation,Constraint,DataColumnMapping,DataTableMapping②System.Data.Coummon →各种数据访问类的基类和接⼝③System.Data.SqlClient →对Sql Server进⾏操作的数据访问类主要有: a) SqlConnection →数据库连接器b) SqlCommand →数据库命名对象c) SqlCommandBuilder →⽣存SQL命令d) SqlDataReader →数据读取器e) SqlDataAdapter →数据适配器,填充DataSetf) SqlParameter →为存储过程定义参数g) SqlTransaction →数据库事物三、Connection连接对象Connection对象也称为数据库连接对象,Connection对象的功能是负责对数据源的连接。
所有Connection对象的基类都是DbConnection类。
3.1、连接字符串基本语法:数据源(Data Source)+数据库名称(Initial Catalog)+⽤户名(User ID)+密码(Password)3.1.1、SQL Server连接字符串标准安全连接:Data Source=.;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;或者Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;Trusted_Connection=False;可信连接:Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;或者Server=myServerAddress;Database=myDatabase;Trusted_Connection=True;3.1.2、Access连接字符串Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\myDatabase.mdb;User Id=admin;Password=;3.1.3、MySQL连接字符串Server=myServerAddress;Database=myDatabase;Uid=myUsername;Pwd=myPassword;3.1.4、DB2连接字符串Server=myAddress:myPortNumber;Database=myDatabase;UID=myUsername;PWD=myPassword;3.1.5、Oracle连接字符串Data Source=TORCL;User Id=myUsername;Password=myPassword;在VS中获得连接字符串并连接到数据库:⼯具->连接到数据库选择SQLServer继续如上图,填写好相关信息在⾼级中可以查看连接字符串的所有信息在VS中可以实现数据库管理:3.2、连接到数据库Connection对象有两个重要属性:(1)ConnectionString:表⽰⽤于打开 SQL Server 数据库的字符串;(2)State:表⽰ Connection 的状态,有Closed和Open两种状态。
基础知识详解是微软提供的⼀种数据库访问技术。
为不同类型的数据源提供了不同的数据提供程序对象:数据提供程序说明SQL Server 数据提供程提供对Microsoft SQL Server中数据的访问,使⽤System.Data.SqlClient命名空间。
序OLE 数据提供程序提供对使⽤OLE DB公开的数据源(如Access、Excel等)中数据的访问,使⽤System.Data.oleDb 命名空间。
ODBC 数据提供程序提供对使⽤ODBC公开的数据源中数据的访问,使⽤System.Data.Odbc命名空间。
数据提供程序中包含了的四个核⼼对象:对象说明Connection建⽴与特定数据源的连接Command对数据源执⾏命令DataReader从数据源中读取只进只读的数据流DataAdapter使⽤数据源填充DataSet并⽀持更新提供两种⽅式访问数据库:连接式访问:整个操作过程中需要保持数据库连接。
断开式访问:只需要在执⾏数据库命令时保持数据库连接。
⼀、使⽤DataReader读取数据使⽤DataReader读取数据属于连接式读取,只能只进的⼀⾏⼀⾏读取数据,并且不能改变数据,如需要改变数据,必须重新执⾏insert,update,delete等sql语句来改变数据。
⽰例:使⽤DataReader读取数据在ListView控件显⽰:此⽰例的测试数据如下:create table Member(MemberId int primary key identity(1,1),MemberAccount nvarchar(20) unique check(len(MemberAccount) between 6 and 12),MemberPwd nvarchar(20),MemberName nvarchar(20),MemberPhone nvarchar(20))insert into Member(MemberAccount,MemberPwd,MemberName,MemberPhone)values('liubei','123456','刘备','4659874564')insert into Member(MemberAccount,MemberPwd,MemberName,MemberPhone)values('guanyu','123456','关⽻','42354234124')insert into Member(MemberAccount,MemberPwd,MemberName,MemberPhone)values('zhangfei','123456','张飞','41253445')insert into Member(MemberAccount,MemberPwd,MemberName,MemberPhone)values('zhangyun','123456','赵云','75675676547')insert into Member(MemberAccount,MemberPwd,MemberName,MemberPhone)values('machao','123456','马超','532523523')此⽰例代码如下:在编写代码之前需要进⾏ListView控件的编辑列操作,并且将视图模式切换成Details模式。
一.绑定combobox:1.加入命名空间(using System.Data.SqlClient)2.确定操作代码的放置位置(窗体加载事件双击窗体系统自建的方法)3.确定连接字符串(在服务器资源管理器中创建数据源,从数据源属性中获取连接字符串)4.创建连接对象SqlConnect con=new SqlConnect(连接字符串)5.打开连接对象con.Open();6.创建sql语句select * from 表名7.创建适配器SqlDataAdapter da=new SqlDataAdapter(sql语句,con)8.创建数据集DataSet ds=new DataSet()9.填充数据集da.Fill(ds,自定义表名)10.绑定绑定combobox的数据源bobox的控件名称(以cbo开头).DataSource=ds.Tables[自定义表名]11.绑定combobox中下拉列表中显示的值bobox的控件名称(以cbo开头).displayMember=表中字段类型为nvarchar的字段名12.绑定combobox中valueMember bobox的控件名称(以cbo开头).valueMember=表中字段类型为int的字段名13.关闭连接con.Close();二.添加数据1.加入命名空间(using System.Data.SqlClient)2.确定操作代码的放置位置(双击Button按钮系统自建的方法)3.确定连接字符串(在服务器资源管理器中创建数据源,从数据源属性中获取连接字符串)4.创建连接对象SqlConnect con=new SqlConnect(连接字符串)5.打开连接对象con.Open();6.创建sql语句insert into 表名values (列名1所对应的值,列名2所对应的值,列名3所对应的值...) 注意:不要添加标识列,列名的顺序和列所对应的值要对应7.创建预处理对象SqlCommand com=new SqlCommand(sql语句,con)8.获取数据(受影响行数) int count= com.executeNoneQuery();9.处理数据(判断是否添加成功)if(count==1){}10.关闭连接con.Close();三.绑定DataGridView1.加入命名空间(using System.Data.SqlClient)2.确定操作代码的放置位置(窗体加载事件双击窗体系统自建的方法)3.确定连接字符串(在服务器资源管理器中创建数据源,从数据源属性中获取连接字符串)4.创建连接对象SqlConnect con=new SqlConnect(连接字符串)5.打开连接对象con.Open();6.创建sql语句select * from 表名7.创建适配器SqlDataAdapter da=new SqlDataAdapter(sql语句,con)8.创建数据集DataSet ds=new DataSet()9.填充数据集da.Fill(ds,自定义表名)10.绑定绑定DataGridView的数据源this.DataGridView的控件名称(以dgv开头).DataSource=ds.Tables[自定义表名]11.关闭连接con.Close();四.绑定ListView1.加入命名空间(using System.Data.SqlClient)2.确定操作代码的放置位置(窗体加载事件双击窗体系统自建的方法)3.确定连接字符串(在服务器资源管理器中创建数据源,从数据源属性中获取连接字符串)4.创建连接对象SqlConnect con=new SqlConnect(连接字符串)5.打开连接对象con.Open();6.创建sql语句select * from 表名7.创建预处理对象SqlCommand com=new SqlCommand(sql语句,con)8.获取数据(使用SqlDataReader)SqlDataReader dr=com.executeReader()9.处理数据while(dr.Read()){ListViewItem li=new ListViewItem(dr[第一列的列名].toString())li.SubItems.Add(dr[剩余列的列名].toString())...this.ListView的空间名(以lv开头).Items.Add(li); }10.关闭连接dr.Close() con.Close()更多知识请访问www。
学习笔记(1)⽤于客户端连接多维数据源检索和操纵数据,也可以操纵元数据。
1。
概述是标准的.NET数据提供者,它使⽤⽀持 XML for Analysis version 1.1标准的数据提供者连接数据源,使⽤TCP/IP或 HTTP流传输和接受SOAP请求。
数据可以被检索为多为数据格式并使⽤对象模型。
使⽤也可以通过两种⽅式浏览和操纵元数据:依赖于OLE DB schema rowsets 或对象模型。
2。
分发在应⽤程序中包含的安装,安装后程序位于C:\Program Files\\ADOMD\8.0下。
3:主要对象简介1)AdomdConnection :连接数据源、获取元数据;2)AdomdCommand:执⾏MDX查询,返回CellSet或AdomdDataReader 对象;3)AdomdDataReader:快速有效的读取多维数据⽅法,如同SqlDataReader;4) CellSet :多维数据结果集,如同dataset;5) OlapInfo:表⽰⼀个CUBE的元数据信息,是CellSet的⼀个属性;6)CubeDef:也表⽰⼀个CUBE的源数据信息,它是AdomdConnection的属性;7)AdomdDataAdapter :实现IDbDataAdapter接⼝,对客户端应⽤提供只读⽀持。
4:⽐较ado md和1)ado md依赖于ado提供连接,需要引⽤Adodb.dll和Adomd.dll;引⽤只需Microsoft.AnalysisServices.AdomdClient.dll ,既提供连接⽀持,也提供元数据存取;2) ADO MD的Catalog属性不再⽀持,从数据源检索元数据通过AdomdConnection的Cubes属性;3)不同于ADO MD,CellSet不再⽤于查询结果,⽽⽤于缓存查询结果;4)在ADOMD。
NET中,Position对象或内部⽀持,CellSet存取通过Set和Tuple对象;5)增加了⼀些新的类,提供更好的错误捕获,更好的封装数据和元数据。
基础知识(一)作为.NET框架最重要的组件之一,扮演着应用程序与数据交互的重要的角色。
本文将从宏观的角度来探讨,和大家一起了解来龙去脉以及的主要组成部分。
1. 什么是?简单的讲,是一组允许.NET开发人员使用标准的,结构化的,甚至无连接的方式与数据交互的技术。
对于来说,可以处理数据源是多样的。
可以是应用程序唯一使用的创建在内存中数据,也可以是与应用程序分离,存储在存储区域的数据(如文本文件、XML、关系数据库等)。
具体来说, 对Microsoft SQL Server 和XML 等数据源以及通过OLE DB 和XML 公开的数据源提供一致的访问。
数据共享使用者应用程序可以使用 来连接到这些数据源,并检索、处理和更新所包含的数据。
作为.NET框架的重要组成部分, 类封装在System.Data.dll 中,并且与System.Xml.dll 中的XML 类集成。
当编译使用System.Data 命名空间的代码时,需要引用System.Data.dll 和System.Xml.dll。
2. 理清与ADO的关系作为一个普通的缩略词,"”并只不是"ADO”的简单升级版本。
严格的讲,和ADO是两种截然不同的数据访问方式。
ADO的全称是Activex Data Objects,它是早期(.NET还未实施)开发人员用来访问数据的组件。
随着.NET的发展,顺其自然地以其显著的优越性逐步取代ADO。
从技术层面讲,ADO使用OLE DB接口并基于微软的COM技术,而拥有自己的接口并且基于微软的.NET体系架构。
虽然大多数基于.NET 的新应用程序将使用 来编写,但.NET 程序员仍然可以通过.NET COM 互操作性服务来使用ADO。
3. 认识最核心的组成部分System.Data命名空间提供了不同的类,它们既分工明确,又相互协作地提供表格数据的访问服务。
该类库包含两组重要的类:一组负责处理软件内部的实际数据(DataSet),一组负责与外部数据系统通信(Data Provider)。
将成为构建数据感知 .NET应用程序的基础. 不同于ADO 的是,更具有通用性,不是那么专门针对数据库而进行的设计. 聚集了所有可以进行数据处理的类.这些类呈现了具有典型数据库功能的data container objects,比如:索引,排序,浏览.尽管是作为重要的.NET数据库应用程序的解决方案,它更多的显示了涵盖全面的设计,而不仅是作为和ADO模型一样的以数据库为中心。
.ADO .NET与ADO有很大的不同.它是一个全新的访问编程模型.当你开始使用时,你会发现你所掌握的任何关于ADO的技能在搭建有效的程序以及解决难题方面对你都会有很大帮助,能够帮你在解决问题上朝更灵活更稳妥的方向发展.不是ADO为适应.NET基础构造而进行改进的版本.当你慢慢了解了的语法,代码设计以及移植后,你就会清楚了.中的数据访问访问中的数据源是由托管提供程序所控制. 虽然托管提供程序与OLE DB有两处重大的不同,但是二者是极为类似的.首先, 托管提供程序在.NET环境下运行,通过 DataReader 和DataTable .NET类来检索和展示数据.第二,它们的体系结构都比较简单,是因为为了适应.NET而进行了优化.此时,分成两种不同类型的托管提供程序:一种用于SQL Server? 7.0 或更高版本,另一种适用于所有你可能已经安装的OLE DB 提供程序.虽然运用在两种托管提供程序中的类是不同的,但它们却都遵循相类似的命名方式.除开前缀之外,其它名称都是相同的.前一种情况前缀为SQL, 后一种则是ADO.你需要利用SQL类来访问SQL Server 表,因为SQL类会跳过由OLE DB 提供程序呈现的中间层, 而直接进入数据库服务器内部API. ADO类是位于OLE DB 提供程序顶端的.NET接口,利用COM Interop 桥来进行工作.关于的入门知识,你可以读读Omri Gazitt's的文章,文章里主要介绍了ADO+:关于微软 框架的数据库访问服务(Data Access Services),而我的文章里关于ADO+的论述主要指出了数据种类的进化.前者更纯技术化,并提供了更高水平的关于编程模型的概述。
学习笔记收藏概述(图是为了便于理解我自己画的,其他的来自中国IT实验室,个人稍作补充与修改,这是篇读书笔记感觉可以作为资料收藏下,继续从ado转型中)一、.NET数据提供程序.Net框架提供数据提供程序:SQL Client .NET Data Provider和Ole DB .NET Data Provider.前者专为SQL Server7以及以后的版本的数据库进行通信而设计,后者允许通过OLE DB提供程序与各种数据存储进行通信。
无论使用哪种方式,所编写的代码都很相似。
二、对象分类概述体系结构示意图,用画板画的效果不很好凑合下吧...1、连接的对象Ⅰ、Connection对象:表示与数据源之间的连接。
可通过Connection对象的各种不同属性指定数据源的类型、位置以及其他属性,可用它来与数据库建立连接或断开连接。
Connection 对象起到渠道的作用,其他对象如DataAdapter和Command对象通过它与数据库通信。
Ⅱ、Command对象:表示对数据库的查询、对存储过程的调用或要返回特定表内容的直接请求。
可使用Command对象对数据库执行任何一种查询操作。
Ⅲ、DataReader对象:DataReder用于以最快的数据检索并检查查询所返回的行。
可使用DataReader对象来检查查询结果,一次查询一行,当移到下一行时,前一行的内容就会被放弃。
DataReader不支持更新操作,由DataReader返回的数据是只读的。
由于DataReader对象支持最小特性集,所以它的速度非常快,而且是轻量的。
Ⅳ、Transaction对象:Connection对象有一个BeginTransaction方法,可用来创建Transaction对象。
该对象可用来在 Transaction对象的生存期提交或取消对数据库所做的更改。
Ⅴ、Parameter对象:要使用参数化的Command对象,可先为查询中的每个参数创建Parameter对象,并将它们添加到Command对象的Paramters集合中。
基础知识(一)
作为.NET框架最重要的组件之一,扮演着应用程序与数据交互的重要的角色。
本文将从宏观的角度来探讨,和大家一起了解来龙去脉以及的主要组成部分。
1. 什么是?
简单的讲,是一组允许.NET开发人员使用标准的,结构化的,甚至无连接的方式与数据交互的技术。
对于来说,可以处理数据源是多样的。
可以是应用程序唯一使用的创建在内存中数据,也可以是与应用程序分离,存储在存储区域的数据(如文本文件、XML、关系数据库等)。
具体来说, 对Microsoft SQL Server 和XML 等数据源以及通过OLE DB 和XML 公开的数据源提供一致的访问。
数据共享使用者应用程序可以使用 来连接到这些数据源,并检索、处理和更新所包含的数据。
作为.NET框架的重要组成部分, 类封装在System.Data.dll 中,并且与System.Xml.dll 中的XML 类集成。
当编译使用System.Data 命名空间的代码时,需要引用System.Data.dll 和System.Xml.dll。
2. 理清与ADO的关系
作为一个普通的缩略词,"”并只不是"ADO”的简单升级版本。
严格的讲,和ADO是两种截然不同的数据访问方式。
ADO的全称是Activex Data Objects,它是早期(.NET还未实施)开发人员用来访问数据的组件。
随着.NET的发展,顺其自然地以其显著的优越性逐步取代ADO。
从技术层面讲,ADO使用OLE DB接口并基于微软的COM技术,而拥有自己的 接口并且基于微软的.NET体系架构。
虽然大多数基于.NET 的新应用程序将使用 来编写,但.NET 程序员仍然可以通过.NET COM 互操作性服务来使用ADO。
3. 认识最核心的组成部分
System.Data命名空间提供了不同的类,它们既分工明确,又相互协作地提供表格数据的访问服务。
该类库包含两组重要的类:一组负责处理软件内部的实际数据(DataSet),一组负责与外部数据系统通信(Data Provider)。
具体架构如下图所示:
DataSet 是 的非连接(断开)结构的核心组件。
DataSet 的设计目的很明确:为了实现独立于任何数据源的数据访问。
因此,结构可以用于多种不同的数据源,用于XML 数据,或用于管理应用程序本地的数据。
DataSet 包含一个或多个DataTable 对象的集合,这些对象由数据行和数据列以及主键、外键、约束和有关DataTable 对象中数据的关系信息组成。
结构的另一个核心元素是.NET 数据提供程序(Data Provider)。
具体包括:Connection 对象提供与数据源的连接。
Command对象使您能够访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。
DataReader 对象从数据源中提供快速的,只读的数据流。
DataAdapter 对象提供连接DataSet 对象和数据源的桥梁。
DataAdapter 使用Command 对象在数据源中执行SQL 命令,以便将数据加载到DataSet 中,并使对DataSet 中数据的更改与数据源保持一致。
4. 扩展
提供一致的数据访问,是使用的一个关键的优势。
但是对于开发人员来说,更大的优势是通过将管理的数据作为对象来说处理。
表中的每个字段都是强类
型成员,与.NET 通用类型系统(Common Type System)完全兼容。
个别的字段甚至可以作为局部变量来使用。
数据行或者其他的数据集对象是标准的.NET 集合(Collections),可以用标准的迭代方法处理。
Entity Framework和LINQ是微软为了提高核心功能而建立的两个新的工具。
需要注意的是,它们并不是的基本组成部分。
Entity Framework 利用了抽象化数据结构的方式,将每个数据库对象都转换成应用程序对象(entity),而数据字段都转换为属性(property),关系则转换为结合属性(association),让数据库的E/R 模型完全的转成对象模型。
而在抽象化的结构之下,则是高度集成与对应结构的概念层、对应层和储存层,以及支持Entity Framework 的数据提供者(provider),让数据访问的工作得以顺利与完整的进行。
LINQ允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。
LINQ 是一个通用的数据工具,可以让你非常容易地融合不同数据源的数据,并得到单一的数据结果集。