SqlCommand.ExecuteScalar 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
执行查询,并返回查询所返回的结果集中第一行的第一列。 忽略其他列或行。
public:
override System::Object ^ ExecuteScalar();
public override object ExecuteScalar ();
override this.ExecuteScalar : unit -> obj
Public Overrides Function ExecuteScalar () As Object
返回
结果集中第一行的第一列;如果结果集为空,则为 Visual Basic) 中的 null 引用 ( Nothing
。 最多返回 2033 个字符。
例外
当 SqlDbType 设置为 Stream 时Value,使用了 Binary 或 VarBinary 以外的 。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
- 或 -
设置为 SqlDbType 时ValueTextReader ,使用了 Char、NChar、NVarChar、VarChar 或 Xml 以外的 。
-或-
对锁定的行执行命令时出现异常。 当使用 Microsoft .NET Framework 1.0 版时不生成此异常。
- 或 -
流式处理操作期间发生了超时。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
流式处理操作期间关闭或删除了 SqlConnection。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
在流式处理操作期间, XmlReader 或 TextReader 对象中Stream发生错误。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
在 Stream 流式处理操作期间关闭了 、 XmlReader 或 TextReader 对象。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
示例
以下示例创建 , SqlCommand 然后使用 执行它 ExecuteScalar。 该示例传递了一个字符串,该字符串表示要插入到表中的新值,以及一个用于连接到数据源的字符串。 如果插入了新行,函数将返回新的 Identity 列值,失败时为 0。
using System;
using System.Data;
using Microsoft.Data.SqlClient;
public class Sample
{
public void CreateSqlCommand(
string queryString, SqlConnection connection)
{
SqlCommand command = new
SqlCommand(queryString, connection);
command.Connection.Open();
command.ExecuteScalar();
connection.Close();
}
注解
ExecuteScalar使用 方法检索单个值 (例如,从数据库中) 聚合值。 这需要的代码比使用 ExecuteReader 方法少,然后执行使用 返回 SqlDataReader的数据生成单个值所需的操作。
典型 ExecuteScalar 查询的格式可以如以下 C# 示例中所示:
cmd.CommandText = "SELECT COUNT(*) FROM dbo.region";
Int32 count = (Int32) cmd.ExecuteScalar();