首页 > Web开发 > 详细

Net学习日记_ADO.Net_2_复习总结

时间:2017-10-28 22:58:56      阅读:215      评论:0      收藏:0      [点我收藏+]

一、ExecuteNonQuery()  执行非查询语句。

       insert update delete 三种基本语句,返回的是数据库,受影响行数。

       在insert中,如果有输出insered.id ,会返回一个结果集,这个结果集只包含一行一列,这一行一列,就是刚才新增的id。

 

二、什么是结果集:sql语句被发送到数据库引擎,执行之后的一个结果的集合。

 

三、ExecuteScalar()  取得结果集的首行,首列的值,

       因为,这一列的类型不确定,所以返回的是object类型,需要我们自己转换类型,因为我们写sql语句的时候,就能确定,将要返回的结果集的首行首列是什么类型的了,如果返回的结果集一行一列都木有,那么这个方法就返回null(C#)。

 

四、ExecuteReader()  执行查询,返回一个读取器这个读取器指向结果集,结果集是在服务器内存中的。

 

五、DataReader,内部的指针默认是指向结果集的第一行的前面的,只有我们调用了DataReader.Read() 这样,会到服务器去拿一行数据,才会向前移动一次指针。

                              DaTaReader.HasRows这个属性,是表示当前读取器指向的服务器结果集是否有任何一行数据,只要有数据,不管有多少行,都返回true,一行都木有的,才返回false。

                              在Cmd.ExecutReader(),数据库查询完,就生成结果集,根据结果集返回读取器,这时候,读取器的HasRows属性就被赋值了

                              Read() 将指向数据库结果集的指针,向前进一个,并且返回这一行的数据,然后保存在dr中,这样我们就取到当前指向的这一行的数据

 

六、Try Catch 保证一个功能出错了,不会 影响另外的功能,出错的代码在try中,只会影响后面的几行。

 

七、注入漏洞:拼接出特殊的sql语句,造成数据库执行错误(和预期的执行结果不一致的结果),使用参数化查询可以避免

 参数化查询:在交给Command对象的sql语句中,用一个@加上几个字符,组成的一个参数名字,如:@name

                      然后借助Parameter类,来创建参数对象,并且交给command对象,一起发送到数据库引擎执行

 

整个ADO包含两大部分:数据提供程序,和数据集

 

NonQuery :非查询,只要影响行数

Scalar :查询出来的数据,只要第一行第一列

Reader:查询出来的数据,全部都要(所有行,所有列),大数据量的

DataSet:查询出来的数据,全部都要(所有行,所有列),比较小数据量的,因为 DataSet是一次新吧所有查询出来的数据全部都搬回 本地内存中

Net学习日记_ADO.Net_2_复习总结

原文:http://www.cnblogs.com/lisong-home/p/7748449.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!