SqlServer数据库的一些方法的用途

SqlServer数据库的一些方法的用途,第1张

概述一直分不清这三种方法的具体用法现在终于找齐了 ExecuteNonQuery方法和ExecuteScalar方法和ExecuteReader方法的区别    (1)ExecuteNonQuery():执行命令对象的SQL语句,返回一个int类型变量,如果SQL语句是对数据库的记录进行 *** 作(如记录的增加、删除和更新),那么方法将返回 *** 作所影响的记录条数。 (2)ExecuteScalar():执行命 @H_419_1@

一直分不清这三种方法的具体用法现在终于找齐了

ExecuteNonquery方法和ExecuteScalar方法和ExecuteReader方法的区别 
 

(1)ExecuteNonquery():执行命令对象的SQL语句,返回一个int类型变量,如果SQL语句是对数据库的记录进行 *** 作(如记录的增加、删除和更新),那么方法将返回 *** 作所影响的记录条数。

(2)ExecuteScalar():执行命令对象的SQL语句,如果SQL语句是SELECT查询,则仅仅返回查询结果集中的第1行第1列,而忽略其他的行和列。该方法所返回的结果为object类型,在使用之前必须强制转换为所需的类型。如果SQL语句不是SELECT查询,则返回结果没有任何作用。

 


------【分析】
命令对象的ExecuteNonquery()方法用于执行任何不从数据库返回结果集的sql *** 作命令,包括INSERT INTO、UPDATE、DELETE语句、没有返回数值的存储过程、CREATE table和CREATEINDEX之类的DDL语句。ExecuteNonquery方法还可用来执行目录 *** 作,例如查询数据库的结构或创建诸如表等的数据库对象。ExecuteNonquery方法对于UPDATE、INSERT INTO和DELETE这些 *** 作语句,其返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为-1。如果发生回滚,返回值也为-1。
假设cmd为sql SERVER数据提供者的命令对象(即sqlCommand),cn为连接对象(保持打开状态),调用ExecuteNonquery方法如以下代码所示。
sqlCommand cmd = new sqlCommand();
cmd.Connection = cn;
//设置cmd的命令文本,本例为删除table1表中ID字段值大于1的记录
cmd.CommandText = “DELETE FROM table1 WHERE [ID]>1”;
int count = cmd.ExecuteNonquery();
以上代码中,创建了sqlCommand类型的命令对象cmd,设置其连接为连接对象cn,sql命令文本为某个SQL语句(一般为增、删、改命令)。执行ExecuteNonquery方法后,命令文本即通过连接对象作用到数据库中,其返回值count则为数据库中受到影响的数据记录数量。
命令对象的ExecuteScalar()方法由于只能返回数据集的第1行第1列,所以常被用于执行聚合函数。假设cmd为sql SERVER数据提供者的命令对象(即sqlCommand),cn为连接对象(保持打开状态),调用ExecuteScalar方法如以下代码所示。
sqlCommand cmd = new sqlCommand();
cmd.Connection = cn;
//设置cmd的命令文本,本例为查询table1表中记录的数量
cmd.CommandText = “SELECT COUNT(*) FROM table1”;
int count = (int)cmd.ExecuteScalar();

以上代码中,创建了sqlCommand类型的命令对象cmd,设置其连接为连接对象cn,sql命令文本为某个SQL语句。由于返回值为object类型,所以需要进行强制转换,count变量即存储了所需数据表中记录的数量。

 

 (3)ExecuteReader():我们通常在asp中用Recordset对象来从数据库中读出数据,并且用 循环语句来一个一个的读出数据,但在我们的ADO.NET中,我们就是用DataReader 对象的 ExecuteReader()方法来进行数据的列出,并且我们用这个ExecuteReader()方法来显示数据 是最快的一种方法,因为当我们在用ExecuteReader()方法中的DataReader 对象来进行数据 的在网站建设中显示时,他只可以一条一条向前读,不能返回,也就是像ASP中的ADO方法 中的Recordset 对象的Movenext一样,他没有move -1这样的返回方法。 说明:如果没有数据可 *** 作,那么只能使用调用命令对象的ExecuteReader方法,返回一个数据读取器(DataReader对象)。因为 ExecuteNonquery()与ExecuteScalar()在没有数据的时候调用时,就会出现“对象没有实例化”的错误。所以在判断是否有数据时,应该调用数据读取器的Read()方法来检测。

总结

以上是内存溢出为你收集整理的SqlServer数据库的一些方法的用途全部内容,希望文章能够帮你解决SqlServer数据库的一些方法的用途所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/sjk/1174075.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存