【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可以看成是一个数据容器,它是各种数据源中的数据在计算机内存中映射成的缓存。具有以下特性:

  • 独立性,其独立于各种数据源;
  • 离线和连接,其既可以以离线方式也可以以实时连接方式操纵数据库中的数据;
  • 其是一种数据关系视图。

学习的过程中就是需要我们不断反复,有的时候是先学习理论,再后面慢慢都会用到,用过了之后,觉得自己又理解得深刻了些;有的时候是自己已经用到了,但对于其理论上的含义不清楚,等到后来碰到了相关的理论知识的学习,突然有种恍然大悟的感觉。不管哪一种,理论与实践相结合,是必不可少的。

时间: 2024-10-29 17:02:07

【ASP.NET】ADO.NET的相关文章

【ASP.NET】关于iframe的两个技巧

原文:[ASP.NET]关于iframe的两个技巧最近在给朋友写个网站,虽然不大,但是也碰到了一些问题.这篇就为解决ASP.NET中关于IFRAME的两个很现实的问题提供解决方法.PS:呵呵,又做了个小项目,每次都能学到很多啊- 这次把之前积累的一些新学的技术都用进去了. 1.在HTML中制作指向iframe的链接在框架集型的网站中制作一个指向特定框架的链接,只需指定target属性即可.那么能不能用同样的方法来制作指向iframe的链接呢?答案是:能!你只需指定iframe的name属性就可以

【ASP.NET】判断访问网站的客户端是PC还是手机

原文:[ASP.NET]判断访问网站的客户端是PC还是手机 主要就是通过客户端传递的User-agent来判断访问网站的客户端是PC还是手机,.NET中就是Request.ServerVariables["HTTP_USER_AGENT"]. 比如正常pc是: Mozilla/5.0 (Windows NT 6.1; rv:27.0) Gecko/20100101 Firefox/27.0 常用手机的是: Nokia5320的是: Nokia 5320/UCWEB7.0.1.34/28

【ASP.NET】Webform与MVC开发比较

    去年暑假开始,跟着一个项目,开始接触到了MVC,那时候,自己对Webform的开发还没有在项目中真正实践过,没有什么过渡,就跳跃到MVC开发下了.而最近,在维护的一个项目中,并没有使用MVC开发,用的是Webform开发.这两次经历的结合,引发了我对本篇博客标题的思考,即Webform与MVC开发比较.     [Webform下的开发]     通过这次对ASP.NET Webform的重用,我发现它更接近可视化设计,换句话说,我只需要从设计面板中拖拽控件即可完成用户界面设计,接着在b

【ASP.NET】session与cookie的比较

    在这次的考试维护中,温习了很多旧知识,也学习到了很多新知识.本篇博客想要和大家一起分享的是session和cookie的联系和区别. [项目概要]     开发中,免不了会需要这样一种变量,在此阶段并没有它,但它出现在之前阶段或者其它方法中,我们就需要把它存储着,使得我们可以方便的获取它的值.在C/S开发下,我们可以定义全局变量:那么在B/S开发下,我们要用到的就是session或cookie了. [项目背景]     在此次开发调查问卷系统中,有几个变量我们是随时需要的,比如:专业.课

求助CKFinder中CheckAuthentication的权限检测【asp版】

问题描述 这是原来的代码:functionCheckAuthentication()'WARNING:DONOTsimplyreturn"true".Bydoingso,youareallowing'"anyone"touploadandlistthefilesinyourserver.Youmustimplement'somekindofsessionvalidationhere.Evensomethingverysimpleas...''CheckAuthent

【ASP.NET】验证控件

在软件开发中,验证输入信息是否正确,这是必不可少的一项工作.就拿我们做过的机房收费系统来说,在登录的时候,我们需要对用户名和用户密码进行验证,判断是否为空,判断输入字符是否合理等等.这些工作,我们之前都需要编写一段又一段代码,依次进行验证.在ASP.NET中,学习到了验证控件,发现这些事情原来可以很容易就被解决的. 这篇博客就将ASP.NET中5个验证控件总结一下,也是为了以后能够更加方便熟悉的使用它们. (一)RequiredFieldValidator控件 其功能是要求用户必须为ASP.NE

【ASP.NET】初次见面

开始了ASP.NET北大青鸟的学习,第一章的学习讲解了很多以前接触过的知识,也终于让我看到了ASP.NET的真面貌. 因地域性限制强,传统的客户端与服务器模式也就越来越需要改善了. 所以,现在大都是Web应用程序的开发,即浏览器与服务器模式. 从上面的图上,可以看到我圈出了一个地方:HTTP响应.这也是两种开发模式最大的区别之处了. 下面就先了解一下HTTP的工作原理: 我们可以以自己编写牛腩代码的经历为参照,每一次看自己编写代码的效果如何,或者调试程序的时候,都是通过在浏览器上查看自己服务器的

【ASP.NET】基本对象

ASP.NET能够成为一个庞大的软件体系,与它提供了大量的对象类库有很大的关系.这些类库中包含许多封装好的内置对象,开发人员可以直接使用这些对象的方法和属性,因此用较少的代码量就能轻松完成很多对象. 这篇博客就将总结一下ASP.NET中的几个基本对象.这些对象主要分为两大功能: 一是用来连接服务器和客户端浏览器之间的联席,包括:Page类,Request对象,Response对象和Server对象: 二是用于网站状态管理,包括:Cookie对象,Session对象和Application对象.

【ASP.NET】请问怎样通过当前月份判定页面的panel控件是否显示

问题描述 DateTimedttime=DateTime.Now.Month;switch(Month){case1:this.Panel1.Visible="ture";······case12:this.Panel12.Visible="ture";}好像各种不对······· 解决方案 解决方案二:this.Panel1.Visible="ture";应该是this.Panel1.Visible=true;才对吧Visible属性本来就是布