胡乱理解ADO.NET(一)

严重注意:下述内容可能完全错误,我只是乱理解一翻便于自己记忆。不能作为任何网友的参考,那便是严重误人子弟了!

希望有懂的人看到后能告诉我真正的原理。谢谢!

对数据库的操作貌似是程序员必须要掌握的知识,也是绝大部分的项目中要用到的知识。在.net框架下程序与数据库之间的互操作称为:ADO.NET。

也做过一些项目,对于程序与数据库的操作,也会用。不明白的地方上网搜一下,查查资料,再把高手写的代码照复制下来照葫芦画瓢是了。这样也满足了一般项目的开发。但是一段时间不用后,又忘了,再去看看代码是怎么搞的,再照葫芦画瓢。至于ADO.NET中的一些细节并不是十分的清楚。这样就有个问题,感觉是全凭记忆去写的代码,而对于为什么代码这么写并不知道。也就是说,看例子代码是这样一行一行排下来,我也这样一行一行排,代码究竟是什么原理并不清楚。所以常常一段时间后又忘了。很想去理解代码的意思,但是无论是买书看,还是上网查资料,总是看的不是很明白。可能是自己太笨的原因,看一些书籍和资料总觉得对于知识点的介绍太过于晦涩,有时努力看了半天也看不懂,就产生了排斥心理,看不下去了。所以有时不是我们不想去学习,而是努力学了却学不会,我想这也是困扰很多人的一个问题。本人就是这样的一个笨人,花了很多功夫可能还没搞明白那是什么意思。

好了,言归正传。现在我就用我自己的理解方式来表达ado.net了,理解的肯定是有很多错误的,但是便于我理解记忆。只要用到项目中没问题就行了,理解错误就错误吧。

首先我们要清楚程序是程序,数据源是数据源。这是两个不同的东西。程序不能像处理自己一样去处理数据源,因为数据源相对于程序来说是外界,不属于程序本身的范围。所以程序要想处理数据缘可能需要个接口之类的。程序通过接口去处理数据源。(也可能不是接口,我瞎猜是接口的

什么是数据源?通俗的解释就是能按一定规律存储数据的一个东西。最最常见的是数据库。当然还有其他的数据源比如xml,也是最近很火暴的。

现在我们以c#语言 ,sqlserver2000数据库,vs2005工具开始探讨ado.net。

对于sqlsever数据的操作要用System.Data.SqlClient名称空间

刚才讲了程序与数据库是两马事,那么就不能直接处理数据库中的数据。那程序怎么去处理数据库呢?很简单啊,“外交”。程序首先和数据库联系上,也就是建立一个连接。程序和数据库建立个“外交关系”就可以和数据库取得沟通了。程序怎么和数据库建立关系呢?c#中有个类叫:SqlConnection,它是专门负责和sql数据库建立联系用的。和哪个数据库联系,需要什么信息等都是SqlConnection负责的。这些信息就组成了连接字符串。好了现在我们有了和数据库连接的一个类了,就可以和数据库连接上了。当然我们不仅仅是要连接上,最终目的是要对数据库里的数据进行操作的。对数据库里数据的操作无非,增、删、改、查,四种方式。我个人认为(实际情况我也搞不清,不知道哪有资料能查到)程序不会直接操作数据库里的数据的,而是发送一个sql命令给数据库,由数据库自己完成操作。那么当我们和数据库连接上后,怎么发送一条命令给数据库呢?就通过c#里的SqlCommand类,这个类就负责把命令封装好,然后送到sqlsever数据库中。数据库接到SqlCommand通知后就得到了要执行的命令,数据库按命令执行后再把反馈信息给SqlCommand的。反馈的消息可能是执行的行数、或者结果集。当SqlCommand得到数据库反馈的信息后,程序也就完成了与数据库的一次操作。

简单看下过程:

1,首先程序通过SqlConnection与数据库连上

2,通过SqlCommand传递命令给数据库

3,数据库执行命令后将执行的信息反馈给SqlCommand

也就是说SqlConnection是专门和数据库连接的;SqlCommand负责发送命令给数据库并得到执行结果的。这两个类都属于连接类。打个不准确比喻就像:有A,B两个厂,A厂现在想要B厂的产品。那么A厂先修条路到B厂,然后派个带有产品订单车子去B厂,车子通过修的那条路开到B厂,B厂接到车子送来的订单后开始做产品,做好后装到车子上。那么A厂就得到想要的了。(A厂就是程序,B厂就是数据库,路就是SqlConnection,车子就是SqlCommand)

那么下面我们看看代码中到底是怎么写的。

先看这段代码

(以Northwind数据库为例子,据说这个数据库就是个例子,可以任意的动)

1//sql语句
2string strSql = "select top 10 city from Customers ";
3
4//创建一个连接(设备)
5SqlConnection cn = new SqlConnection();
6//指定是连到哪个数据库以及其他连接信息
7cn.ConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
8
9//创建一个发送命令的东西,并指定用哪个连接以及其他信息
10SqlCommand cmd = new SqlCommand(strSql, cn);
11cmd.CommandType = CommandType.Text;
12
13//和数据库连上
14cn.Open();
15
16//发送命令
17//cmd.ExecuteNonQuery();
18//cmd.ExecuteReader();
19//cmd.ExecuteScalar();
20//
21

时间: 2024-11-02 00:48:15

胡乱理解ADO.NET(一)的相关文章

胡乱理解ADO.NET(三)

上一篇我们讲了dataset的内部构成和如何往里面填充数据.当一个dataset被填充上数据后我们就可以用个数据绑定控件来绑定到dataset里的datatable了,然后就可以显示出里面的数据了.比如:GridView1.DataSource = ds.Tables[0].DefaultView,这样数据被显示出来了.很奇怪ds.Tables[0].DefaultView怎么多个DefaultView这玩意.有什么作用?我们把它去掉直接用ds.Tables[0]发现也可以.那这个东西有什么用?

胡乱理解ADO.NET(二)

在上篇文章中说了程序对数据库的操作后,我们通常要返回操作信息.例如:返回受影响的行数或者返回查询的数据.SqlDataReader可以对返回的数据进行操作,但只是只读的,而且必须要保持连接才行.那么能不能更灵活的对返回的数据操作呢?答案是肯定的. 既然我要对返回的数据进行灵活的操作,那么我们是不是要搞个东西来存放这些数据.要不然程序得到数据库里的数据后放哪?我们用什么来存放这些数据呢?有个类叫做dataset官方的解释叫做:表示数据在内存中的缓存.看这个解释多少对我来说多少有点茫然.我个人把它通

胡乱理解ADO.NET(四)

在上两篇文章中,对于dataset做了个简单的探讨.很多次提到,可以把dataset看作是内存中的数据库.既然是数据库,那么首要任务就是存储数据用的.而之前,我所举的的例子都是手工往dataset里添加数据,其实这个并不是我们最想要的.我们最想要的是能用程序把数据库里的数据读取出来然后装到dataset里,然后用程序来处理dataset里的数据.当处理好dataset里的数据后,我们还想把这些数据再更新到数据库中. 这样就能与数据库断开连接而处理数据了(把数据库中的数据读取出来并装到datase

ASP.NET趣味理解-ADO.NET对象模型

数据库的应用在我们的生活和工作中已经无处不在,无论是一个小企业的OA系统,还是中国移动的运营系统,似乎都离不开数据库的应用.对于大多数应用程序来说,不管它们是Windows桌面应用程序,还是Web应用程序,存储和检索数据都是其核心功能.所以针对数据库的开发已经成为软件开发的一种必备技能.如果说过去是"学好数理化,走遍天下都不怕",那么,对于今天的软件开发者而言就是"学好数据库,走到哪儿都不怵!". ADO.NET是微软新一代.NET数据库的访问架构,ADO是Acti

为 ADO 程序员设计的 ADO.NET (2)

ado|程序|程序员|设计 转换现有代码有许多 ASP 页面使用 ADO 对象来抽取数据.让我们来讨论几种典型的情况,您在不久的将来移植和改编代码时可能会遇上这些情形.如果您有从单个记录集生成报表的 ASP 页面,DataReader 对象将是您最好的伙伴.您浏览 DataReader 对象时,它会将结果输出到页面. String strConn, strCmd; strConn = "DATABASE=MyAgenda;SERVER=localhost;UID=sa;PWD=;";

从 ADO“经典”迁移到 ADO.NET

ado 本文摘自 Hitchhiker's Guide to Visual Studio and SQL Server 2005(7th Edition) William VaughnBeta V Corporation 适用于Microsoft ADO.NETMicrosoft SQL Server 2005(代号"Yukon")Microsoft Visual Studio 2005(代号"Whidbey") 摘要:Bill Vaughn 讨论了 Visual

ADO.NET最佳实践(下)

ado     T.与XML结合         ADO.NET在DataSet中提供对XML的广泛支持,同时在SQL Server2000或以后版本中的XML功能性扩展也能在ADO.NET中得到充分运用.你可以使用SQLXML访问在SQL Server2000和以后版本中提供的XML功能性扩展.下面是使用XML和ADO.NET的一些技巧信息.         I.DataSet和XML         DataSet和XML的完美整合,可以使你完成以下事情:             ①从XSD

初谈ADO.NET中利用DataAdapter进行数据操作

ado|数据     对于刚刚学习ADO.NET数据访问技术的来说,DataAdapter也许往往会令他们感到迷惑,特别是习惯于利用托拽DataAdapter控件进行开发的朋友,通过这一ADO.NET数据访问控件,我们甚至不用书写一行代码,就能完成各种需要的数据访问和操作,然而在享受快捷便利的同时,心中却总挂着一丝意犹未尽的感觉.DataAdapter控件在背后为我们做了怎样的工作?弄清楚这一点,对于喜欢探根究底的朋友,不仅乐哉悠哉,也有利于我们更它的理解ADO.NET的数据访问机制:同时对于.

为ADO 程序员设计的 ADO.NET (转)

ado|程序|程序员|设计 摘要:本文讨论如何以 ADO.NET 方式实现基本数据库操作,以及何时使用 ADO.NET 代替 ADO. 目录.NET 中的数据访问读取数据DataSet.DataTable 和 Recordset转换现有代码更新数据XML 扩展支持总结 自若干年前推出开放式数据库连接 (ODBC) 应用程序编程接口 (API) 以来,出现了各种各样的数据库访问技术,而 ADO.NET 是其中最新的一种.在这过程中,发生了许多有趣的事.例如,COM 闯入数据库领域,开始培植 OLE