【ASP.NET】ADO.NET

简介:
	在我们编程的这么长时间以来,几乎每个程序都需要我们与数据库打交道,对数据的访问和处理都是少不了的操作。在ASP.NET中,它给我们提供了ADO.NET技术,ADO.NET提供了对关系数据、XML和应用程序数据的访问,支持多种开发需求。
	其实,在我们学习数据库的时候,就与ADO.NET接触过,但之前也没有总结,这一次的学习,比以前理解起来要容易些,所以也总结一下。
	ADO.NET组件将数据访问与数据处理分离,它是通过两个主要的组件:.NET数据提供程序(data provider)和DataSet来完成这一操作的。下面是ADO.NET的整体结构图:
	
	ADO.NET数据访问一般有两种方式:一是通过DataReader对象直接访问;另一种是通过DataSet对象和DataAdapter对象来访问。它包含一下四种对象:
  • Connection,提供与数据源的连接;
  • Command,用于返回、修改数据,运行存储过程以及发送或检索参数信息的数据库命令;
  • DataReader,从数据源中提供高性能的数据流;
  • DataAdapter,提供连接DataSet对象和数据的桥梁,使用Command对象在数据源中执行SQL命令,以便将数据加载到DataSet对象中,并使DataSet对象中数据的更改与数据源保持一致。
下面就对这四个对象一一总结一下: (一)Connection对象 对于数据库的操作,首先需要连接数据库,在ADO.NET中,利用Connection对象连接数据库,其常用的一些参数主要有:
  • Data Source:SQL Server数据库服务器的名称;
  • Initial Catalog:数据库名称;
  • Integrated Security:决定连接是否安全;
  • User ID:SQL Server登录账户;
  • Password:SQL Server账户的登录密码。
(二)Command对象 数据库连接成功后,就可以读取和操作数据库中的数据,主要通过使用Command对象执行SQL命令实现。 SQLCommand类,我是在机房重构的时候,有了进一步深刻的认识,不论是执行SQL语句,还是存储过程,这都是通过command对象的属性和方法改变的。下面就简单列举一些我们在机房重构中用到过的各种属性和方法,有的在当时用的时候也许还不理解它的含义。 sqlCommand类的属性:
  • commandtext:类型为string,其值可以是SQL语句,存储过程或表;
  • commandType:类型为枚举类型,Text为SQL语句,StoredProcedure为存储过程,TableDirect为要读取的表;
  • connection:获取sqlconnection对象,使用该对象与数据库进行通信。
sqlCommand类的重要方法:
  • ExecuteNonQuery:类型为int,执行无返回结果的SQL语句;
  • ExecuteReader:类型为SqlDataReader,执行Select、tableDirect命令或有返回结果的存储过程;
  • CreateParameter:创建SQLParameter对象。
sqlCommand类的构造函数:
  • sqlCommand():不带参数,直接创建对象;
  • sqlCommand(string CommandText):根据SQL语句创建对象;
  • SqlCommand(string CommandText,SqlConnection conn):根据SQL语句和数据源连接创建对象;
  • SqlCommand(string CommandText,SqlConnection conn,sqlTransaction tran):根据SQL语句、数据源连接和事务对象创建对象;   
(三)DataReader对象 如果利用Command对象所执行的命令是有返回数据的Select命令,此时Command对象会自动产生一个DataReader对象,它可以将数据源的数据取出后显示给使用者,它一次只能读取一条数据,而且只能只读。 (四)DataAdapter对象 DataAdapter对象能够用来保存和检索数据,其Fill方法用于将查询结果填充到DataSet或DataTable中。 除了上面的四个对象,DataSet我们也算比较熟悉了,在机房重构的时候,我们也有用到过,我们将数据库与数据控件绑定,便可得到一个DataSet,这样对于我们访问和处理数据也方便了许多。 DataSet可以看成是一个数据容器,它是各种数据源中的数据在计算机内存中映射成的缓存。具有以下特性:
  • 独立性,其独立于各种数据源;
  • 离线和连接,其既可以以离线方式也可以以实时连接方式操纵数据库中的数据;
  • 其是一种数据关系视图。
学习的过程中就是需要我们不断反复,有的时候是先学习理论,再后面慢慢都会用到,用过了之后,觉得自己又理解得深刻了些;有的时候是自己已经用到了,但对于其理论上的含义不清楚,等到后来碰到了相关的理论知识的学习,突然有种恍然大悟的感觉。不管哪一种,理论与实践相结合,是必不可少的。
目录
相关文章
|
4月前
|
开发框架 前端开发 JavaScript
盘点72个ASP.NET Core源码Net爱好者不容错过
盘点72个ASP.NET Core源码Net爱好者不容错过
136 0
|
4月前
|
开发框架 .NET
ASP.NET Core NET7 增加session的方法
ASP.NET Core NET7 增加session的方法
74 0
|
11月前
|
存储 开发框架 前端开发
asp.net与asp.net优缺点及示例
asp.net与asp.net优缺点及示例
|
1月前
|
开发框架 JSON .NET
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
|
2月前
|
开发框架 搜索推荐 前端开发
【.NET全栈】ASP.NET开发Web应用——Web部件技术
【.NET全栈】ASP.NET开发Web应用——Web部件技术
|
1月前
|
开发框架 .NET 数据库连接
ASP.NET Core 标识(Identity)框架系列(一):如何使用 ASP.NET Core 标识(Identity)框架创建用户和角色?
ASP.NET Core 标识(Identity)框架系列(一):如何使用 ASP.NET Core 标识(Identity)框架创建用户和角色?
|
3月前
|
Linux C# C++
【.NET Developer】创建ASP.NET Core Blazor项目并打包为Linux镜像发布到Azure应用服务
本文介绍了如何使用VS2019和.NET框架创建一个Blazor应用,并将其部署到Azure应用服务。首先,Blazor是一个使用C#而非JavaScript构建交互式Web UI的框架,支持共享服务器和客户端应用逻辑,以及与Docker和Azure集成。任务包括创建Blazor项目,配置Dockerfile为Linux容器,本地测试,发布到Azure Container Registry (ACR),然后在Azure App Service for Container上部署。在部署过程中,需确保Docker设置正确,开启ACR的Admin访问权限,并监控镜像拉取和容器启动日志。
112 0
|
4月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
258 5
|
4月前
|
开发框架 中间件 .NET
C# .NET面试系列七:ASP.NET Core
## 第一部分:ASP.NET Core #### 1. 如何在 controller 中注入 service? 在.NET中,在ASP.NET Core应用程序中的Controller中注入服务通常使用<u>依赖注入(Dependency Injection)</u>来实现。以下是一些步骤,说明如何在Controller中注入服务: 1、创建服务 首先,确保你已经在应用程序中注册了服务。这通常在Startup.cs文件的ConfigureServices方法中完成。例如: ```c# services.AddScoped<IMyService, MyService>(); //
267 0
|
4月前
|
SQL 开发框架 JavaScript
分享33个ASP.NET电子商务源码和40个ASP.NET控件组件源码,总有一款适合您
分享33个ASP.NET电子商务源码和40个ASP.NET控件组件源码,总有一款适合您
69 0