zoukankan      html  css  js  c++  java
  • Net学习日记_ADO.Net_2_复习总结

    一、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对象,一起发送到数据库引擎执行

    巩固:

    Command

    ExecuteNonQuery —执行非查询语句,返回受影响行数

                                    在新增,删除,修改 的时候,如果我们要返回结果集那么就不能用它了

    ExecuteScalar       –执行查询,返回结果集的第一行第一列,如果结果集为空那么就返回Null

                                   在程序没有执行之前,返回值类型不确定,所以返回值是object

    ExecuteReader     –返回一个指向数据库结果集的读取器,

    DataAdapter         -直接将数据库的结果集全部一次性搬到本地的数据集(DataSet)里面

    DataReader        –指向数据库结果集的读取器,在没有调用Read方法之前,指针指向的是结果集的第一行之前

                                  通过Read方法可以使指针向前前进一个,如果当前指向的地方有数据行,那么就返回true,并且把数据装到自己内部,如果没有数据了(指向了结果集的最后一行之后),那么就返回false

                                 HasRows,这个属相可以判断当前读取器指向的结果集是否有一行或者多行,一行都没有就返回false,否则返回true,这个值,是在ExecuteReader的时候,就已经赋值了

  • 相关阅读:
    帝国 标签模板 使用程序代码 去除html标记 并 截取字符串
    iis6 伪静态 iis配置方法 【图解】
    您来自的链接不存在 帝国CMS
    帝国cms Warning: Cannot modify header information headers already sent by...错误【解决方法】
    .fr域名注册 51元注册.fr域名
    帝国网站管理系统 恢复栏目目录 建立目录不成功!请检查目录权限 Godaddy Windows 主机
    星外虚拟主机管理平台 开通数据库 出现Microsoft OLE DB Provider for SQL Server 错误 '8004' 从字符串向 datetime 转换失败
    ASP.NET 自定义控件学习研究
    CSS层叠样式表之CSS解析机制的优先级
    ASP.NET程序员工作面试网络收藏夹
  • 原文地址:https://www.cnblogs.com/lisong-home/p/7748449.html
Copyright © 2011-2022 走看看