ADO.NET中COMMAND对象的ExecuteNonQuery、ExcuteReader和ExecuteScalar方法

1、ExecuteNonQuery方法。
该方法执行更新操作,即与UPDATE、INSERT、DELETE等语句有关的操作,在这种情况下,返回值是命令影响的行数。对其他语句,如SET或CREATE,则返回-1,如果发生回滚,返回值也是-1。

2、ExcuteReader方法。
它与查询命令一起使用,返回一个数据阅读器对象SqlDataReader类的一个实例。该方法执行更新语句,执行成功后,不会返回任何受影响的数据行。

3、ExecuteScalar方法。
如果只想检索数据库信息中的已个值,而不需要返回表或数据流形式的数据库信息。例如,只需返回COUNT(*)、SUM(Price)或AVG(Quantity)等聚合函数的结果,该方法适合。如果在一个常规的查询语句中调用该方法,则只读取第一行第一列的值,而丢弃所有其他值

ExecuteReader:可以读一个表的记录,只能读不能写

ExecuteScalar:只能读一条记录,一般用来判断数据库是否有数据等,只能读不能写

ExecuteNonQuery:可以写以可以读,

首先,我们知道这三个东东应该是ADO.NET中对数据库中操作的CMD,我们知道,如果我们要进行一个网让建设,必然在这个过程中,我们一定要进行与数据库的交互,我们要不断地进行数据库的读写,那么ExecuteNonQuery(),ExecuteReader()与ExecuteScalar()就是我们在对数据库进行操作时要用到的,下面我来依次认识一下:

ExecuteNonQuery():这个东东可以让我们在更新数据库时不使用 DataSet 而使用 ExecuteNonQuery 更改数据库中的数据。通过执行 UPDATE、INSERT 或 DELETE SQL语句就可以达到更改数据库中的数据目的。即使 ExecuteNonQuery 不返回任何行,映射到参数的输出参数或返回值仍然使用数据填充。但对于 UPDATE、INSERT 和 DELETE SQL语句,返回的值就是受ExecuteNonQuery()命令影响的行数。对其它类型的语句以及回退来说,返回的值都是 -1。

ExecuteReader():我们通常在asp中用Recordset对象来从数据库中读出数据,并且用循环语句来一个一个的读出数据,但在我们的ADO.NET中,我们就是用DataReader 对象的ExecuteReader()方法来进行数据的列出,并且我们用这个ExecuteReader()方法来显示数据是最快的一种方法,因为当我们在用ExecuteReader()方法中的DataReader 对象来进行数据的在网站建设中显示时,他只可以一条一条向前读,不能返回,也就是像ASP中的ADO方法中的Recordset 对象的Movenext一样,他没有move -1这样的返回方法。

ExecuteScalar():这种CMD相当于我们在ADO中用SQL语句中使用一些计算函数的功能一样,在这里我们只是返回所有影响的行数的第一行第一列数据,这样也就是相当于专业为我们的如:select count(*) from database的功能一样,我们可以用

string sql="select * from  database"

SqlCommand cmd=SqlCommand(sql,conn)

int i=(int)cmd.ExecuteScalar()

这样我们的局部变更i的值就是与上面我的功能一样.

最后值得一说的是:这是出自我平时所用的时候的一些认识:那就是如果我们在进行数据操作时,如果没有数据可操作,那么我们只能使用ExecuteReader()这个CMD,而executeNoeQuery()与Executescalar()如果在没有数据的时候使用时,就会出错“对像没有实例化”的错误。所以我们在判断是否有数据时,只可以用ExecuteReader()中的REad()方法来检测。

时间: 2024-10-12 18:25:06

ADO.NET中COMMAND对象的ExecuteNonQuery、ExcuteReader和ExecuteScalar方法的相关文章

浅谈ADO.NET中的对象——Connection、Command、DataReader、DataAdapter、DataSet、DataTable

可能是当初没有好好总结的缘故,学习.NET以来,对ADO.NET中的对象一直有些模糊,今天重新回顾了一下,通过查资料,总结,结合自己的观点整理一下ADO.NET中Connection.Command.DataReader.DataAdapter. DataSet.DataTable这几个对象的相关知识,希望对初学者能起到一个全局把控的作用,希望大牛能留下宝贵的指导意见. 以下的例子仅以连接 SQL Server数据库为例,所以分别以SqlConnection.SqlCommand.SqlData

问题:ExecuteNonQuery 与 ExecuteScalar 结果: ExecuteNonQuery方法和ExecuteScalar方法的区别

ExecuteNonQuery方法和ExecuteScalar方法的区别 ----ExecuteNonQuery():执行命令对象的SQL语句,返回一个int类型变量,如果SQL语句是对数据库的记录进行操作(如记录的增加.删除和更新),那么方法将返回操作所影响的记录条数. ----ExecuteScalar():执行命令对象的SQL语句,如果SQL语句是SELECT查询,则仅仅返回查询结果集中的第1行第1列,而忽略 其他的行 和列.该方法所返回的结果为object类型,在使用之前必须强制转换为所

温故而后知新——对ado.net中常用对象的一些解释

在使用ado.net连接数据库获取数据,一般的步骤是: 1.设置好web.config    //用来设置服务器数据库的地址以及登录名密码 2.创建Connection对象    //用来创建访问数据库的连接 3.创建Command对象    //用来发送命令(写sql语句) 4.用DataReader获取数据    //获取数据库数据 5.利用DataSet储存获取到的数据    //容器 6.关闭Connection对象和DataReader/DataAdapter的连接  //为了性能,不

关于SqlCommand对象的2个方法:ExecuteNonQuery 方法和ExecuteScalar方法

1.SqlCommand.ExecuteNonQuery 方法 对连接执行 Transact-SQL 语句并返回受影响的行数. 语法:public override int ExecuteNonQuery() 返回值: 类型:System.Int32 受影响的行数 注意: ①对于 UPDATE.INSERT 和 DELETE 语句,返回值为该命令所影响的行数. 如果正在执行插入或更新操作的表上存在触发器,则返回值包括受插入或更新操作影响的行数以及受一个或多个触发器影响的行数. 对于所有其他类型的

ADO.NET中主要对象

ADO.NET是什么? ADO.NET是.Net平台提供和数据库交互的类库集,我们可以通过它对SQLSERVER,XML,Oracle等这样的数据源进行访问. 应用程序可以使用ADO.NET链接到数据源,进行增.删.改.查操作. ADO.NET主要对象有哪些 ADO.NET主要包含以下五个核心对象: 1.Connection: 用于和数据源建立连接. 2.Command:用于执行SQL命令. 3.DataReader:从数据源读取只进且只读的数据流,读取过程中必须和数据源保持连接状态. 4.Da

JS中Date对象getYear()方法和getFullYear()方法区别

getYear() 使用getYear()函数的本意是获取年份,以2010年为例,如: var nowd = new Date(); var yf = nowd.getYear(); 在IE中是可以正确获取年份:2010,但是在FF等浏览器下则为:110. 原因则是 在 FF等浏览器内 getYear 返回的是 "当前年份-1900" 的值(即年份基数是1900) 而IE则是 当today的年份大于等于2000的时,直接将1900加上了,返回的 2010. getFullYear()

.NET数据库连接中的对象

 在学习VB.NET视频时,其中有几个单元讲到了.NET的数据库设计与连接.对于数据库的连接,其实我们并不陌生,原来在做红皮书和机房收费系统的时候,我们都有接触过,可是,在我的印象中,这些关于数据库连接的知识很是模糊.对于数据库连接对象更是一知半解. 回过头来,翻了一遍红皮书中的几个实例,里面讲到了利用ADO控件来连接数据库,它涉及到的数据库连接对象有7个(connection,command ,recordset,Field,Property,parameter,error) 那么对于如今

.NET中常见对象

.NET中六大内置对象:1.Response    2.Request   3.Session   4.Appliction  5.Server  6.Cookie System.Web.HttpContext.Current.Server.MapPath() System.Web.HttpContext.Current.Session System.Web.HttpContext.Current.Response System.Web.HttpContext.Current.Request A

ADO.NET入门教程(六) 谈谈Command对象与数据检索

摘要 到目前为止,我相信大家对于ADO.NET如何与外部数据源建立连接以及如何提高连接性能等相关知识已经牢固于心了.连接对象作为ADO.NET的主力先锋,为用户与数据库交互搭建了扎实的桥梁.它的一生是平凡而又伟大的,总是尽自己最大的努力为用户搭建一条通往数据库的平坦大道.相比连接对象来说,Command对象似乎耀眼的多.Command对象在ADO.NET世界里总是忙忙碌碌,它就像一个外交官,为用户传达了所有操作数据库的信息. 目录 准备 什么是Command对象? 必须掌握的几个属性 必须掌握的