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

2021-05-16 04:30

阅读:449

标签:read   c#   指针   bsp   多少   复习   需要   集合   保存   

一、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_复习总结

标签:read   c#   指针   bsp   多少   复习   需要   集合   保存   

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


评论


亲,登录后才可以留言!