ExecuteScalar方法

ExecuteScalar方法oRs.Open”SELECTCOUNT(*)AsiRowCountFROMOrders”iCount=oRs.Fields(“iRowCount”).ValueADO.NET引入了一种从查询的结果中获取单值的新方式,可以用于预计只返回一行和一列的场合。ADO.NETCommand对象有一个ExecuteScalar方法,它从相关的查询中返回第一行和第一列的值。因为不用创建行集、查

大家好,又见面了,我是你们的朋友全栈君。

oRs.Open “SELECT COUNT(*) As iRowCountFROMOrders”

iCount=oRs.Fields(“iRowCount”).Value

ADO.NET引入了一种从查询的结果中获取单值的新方式,可以用于预计只返回一行和一列的场合。ADO.NETCommand对象有一个ExecuteScalar方法,它从相关的查询中返回第一行和第一列的值。因为不用创建行集、查找值并关闭行集,所以这样所产生的系统开销非常小。ExecuteScalar方法已经针对需要检索单值的特定场合进行了优化。下例实现的功能与前例相同,只不过使用的是ASP.NET和ADO.NET以及ExecuteScalar方法:

string sSql = “SELECTCOUNT(*) As iRowCountFROMOrders”;

SqlCommandoCmd=newSqlCommand(sSql,oCn);

oCmd.CommandType = CommandType.Text;

int iCount = (int)oCmd.ExecuteScalar();

检索单值的另一种方式是使用存储过程的输出参数。例如,这一技术也可以从一个单行中检索许多值。它在ADO和ADO.NET中都适用,虽然ADO.NET已经扩展了输出参数的功能。在ADO.NET中为了从Command对象获取输出变量的值,应该使用ExecuteNonQuery方法执行查询。该方法能够通知ADO.NET,查询不会返回一个行集,因此避免了DataSet或者DataReader的系统开销:

oCmd.ExecuteNonQuery();

oCmd.UpdatedRowSource=UpdateRowSource.OutputParameters;

intiOrderID=(int)oCmd.Parameters[“@OrderID”].Value;

此段代码将UpdatedRowSource属性设置为指向输出参数(假定它们已经进行了设置),然后就可以检索输出值了。在传统的ADO中这是在Connection对象的Execute方法中使用晦涩难懂的参数实现的,而我们可以看到,在ADO.NET中实现这一点已经非常简单了。当然,ADO.NET还有一个为返回标准行集进行了优化的方法—Command对象的Execute方法。在传统的ADO中,Recordset对象能够设置UPDATE、INSERT和DELETE语句,这些语句是为了使Recordset能够将对自己的任何更改应用于基础数据库所必需的。虽然这一功能非常方便,但因为必须要返回给数据库以决定如何实现,所以,它也增加了系统开销。ADO.NET对象通过CommandBuilder对象也可以实现这一点;但同样也存在着系统开销的问题。在大多数开发场景中,要求使用的确切SELECT、INSERT、UPDATE和DELETE语句在设计时是已知的。在传统的ADO中,没有什么简单的办法将操作查询与Recordset相关联从而来使用它们。而在ADO.NET中,DataAdapter有四个不同的Command对象与其相关联,可以表示每个操作查询以及SELECT语句。这使DataAdapter能够协助我们用查询的结果填充一个DataSet,还能提前通知DataAdapter对数据库发出操作查询。虽然这需要在设计时投入更多的编码工作,但是代码的增加换来的是性能上的改善(就更不用说代码易于理解所带来的维护上的轻松了)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149109.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 人生哲理「建议收藏」

    人生哲理「建议收藏」九大人生哲理 1、跌倒了,才懂得平顺最重要;2、病倒了,才懂得身体最重要;3、郁闷了,才懂得快乐最重要;4、挫折了,才懂得信心最重要;5、错过了,才懂得珍惜最重要;6、潦倒了,才懂得金钱最重要;7、丢人了,才懂得名誉最重要;8、成功了,才懂得过程最重要;9、迟暮了,才懂得时间最重要。 生命的要义 人生要做两件事:一件感恩,一件感悟;人生要迈两

    2022年6月2日
  • vm安装ubuntu时一直没反应_虚拟机安装ubuntu系统要多久

    vm安装ubuntu时一直没反应_虚拟机安装ubuntu系统要多久这**加粗样式**里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学

    2022年9月30日
  • stm32 独立看门狗时钟配置[通俗易懂]

    stm32 独立看门狗时钟配置[通俗易懂]独立看门狗的时钟源为40k,分频因子最大为256//初始化独立看门狗 5秒钟//prer:分频数:0~7(只有低3位有效!)//分频因子=4*2^prer.但最大值只能是256!//rlr:重装载寄存器值:低12位有效,最大只能是4096//时间计算(大概):Tout=40K/((4*2^prer)*rlr)值.voidIWDG_Init(u8prer,u16rlr){ IWDG_Writ…

    2022年5月10日
  • httprunner(6)配置信息config[通俗易懂]

    httprunner(6)配置信息config[通俗易懂]前言每个测试用例都应该有config部分,可以配置用例级别。比如name、base_url、variables、verify、export等等案例演示fromhttprunnerimport

    2022年7月30日
  • iOS之深入解析Xcode 13正式版发布的40个新特性

    iOS之深入解析Xcode 13正式版发布的40个新特性一、前言Xcode13包括适用于iOS15、iPadOS15、tvOS15、watchOS8和macOSBigSur11.3的SDK。Xcode13ReleaseCandidate支持iOS9及更高版本、tvOS9及更高版本以及watchOS2及更高版本的设备上调试。Xcode13需要运行macOS11.3或更高版本的Mac。二、通用Xcode13包括对Swift并发编程的原生支持、对XcodeCloud持续集成和

    2022年4月29日
  • 脚手架专项施工方案范本_手写react项目脚手架

    脚手架专项施工方案范本_手写react项目脚手架前言如何快速搭建一个httprunner项目呢?我们可以使用脚手架,脚手架就是自动地创建一些目录,形成一个项目的架构,不需要我们再手动的去创建查看创建新项目的命令先来查看一下帮助命令httpr

    2022年7月30日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号