知识大全 用ADO.NET的ExecuteScalar方法返回单一值

Posted 员工

篇首语:农村四月闲人少,勤学苦攻把名扬。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用ADO.NET的ExecuteScalar方法返回单一值相关的知识,希望对你有一定的参考价值。

用ADO.NET的ExecuteScalar方法返回单一值  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  若您程序中执行的 SQL statement 或 Stored Procedure 只是要返回计算过的「单一值」 例如:

  SELECT Count(*) FROM 员工数据表

  或只会回传符合条件的「第一笔」record 的「第一个」column 其值 例如:

  SELECT 电子信箱 FROM 员工数据表 WHERE 姓名= David

  我们即可用 Command 对象的 ExecuteScalar 方法 (ADO NET x 即支援 DbCommand 对象则要 NET 才支持) 以回传数据集中第一个 row 的第一个 column 其存储值 并忽略其它无用的数据 此种做法比起用ExecuteReader 方法回传「多组」record 再指定给 DataReader 对象 再逐一比对数据 可更有效地节省系统资源并提升「性能 (performance)」

  但由于 ExecuteScalar 方法回传的必为 Object 类型 因此必须由程序员 手动将其强制转型为 NET 的 int 或 string 等想要的类型 以便直接指派给 int 或 string 类型的变量 或显示在页面上的控件中 如下所示

  string theMail = (string)cmd ExecuteScalar();

  因此使用 ExecuteScalar 方法时 在程序中必须先确定 承接回传值的变量其类型为何 否则会发生转型错误 此外 在上例中 若「员工数据表」内有超过一个以上叫做「David」的员工 则 ExecuteScalar 方法只会回传「第一个」叫做 David 的员工其电子信箱 而忽略其它亦符合条件的数据

  此外 ExecuteScalar 方法不只可以用在数据库的 SELECT 作业 亦可用于 INSERT 作业 假设我们想要在 INSERT 一笔 record 至数据库后 马上取得刚才新增那一笔 record 的 Identity (自动增号) 的值 可用下列 SQL statement 达成

  string strSql = INSERT INTO 数据表 (name age) VALUES ( David ); Select @@Identity ;

  此时 我们即可用 ExecuteScalar 方法 取代 ExecuteNonQuery 方法 去执行上述这一段 SQL statement 以便返回一笔计算过的「单一值」 亦即最新的 Identity 流水号码 关键 ADO NET 代码如下

  SqlConnection conn = new SqlConnection(strConnString);        SqlCommand cmd = new SqlCommand(strSqlStr conn);        try                    conn Open();            if (conn State == ConnectionState Open)                            // 返回最新的 Identity 流水号码                intNewestSerialNum = Convert ToInt (cmd ExecuteScalar());                            catch (SqlException ex)       

cha138/Article/program/net/201311/13163

相关参考

知识大全 用ADO.NET处理层次数据

用ADO.NET处理层次数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ADONET为数据在

知识大全 用C#对ADO.NET数据库完成简单操作

用C#对ADO.NET数据库完成简单操作  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!数据库访问是

知识大全 用ado.net对word,excel进行存取

   blob表   idint   namechar   blobimage&

知识大全 C#ADO.NET操作数据代码汇总

C#ADO.NET操作数据代码汇总  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一.用SqlC

知识大全 ADO.NET SQL语句检索说明

ADO.NETSQL语句检索说明  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  下面用实例进行介

知识大全 掌握ADO.NET的十个热门技巧[3]

掌握ADO.NET的十个热门技巧[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  尽可能用预

知识大全 ADO.NET和ADO的比较

ADO.NET和ADO的比较  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 处理ADO与ADO.NET对比介绍

处理ADO与ADO.NET对比介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ADONET统

知识大全 在 ADO 和 ADO.NET 中管理离线数据

在ADO和ADO.NET中管理离线数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  您可以使用

知识大全 ADO.Net与ADO在数据内存中的差异讨论

ADO.Net与ADO在数据内存中的差异讨论  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据