SqlCommand.ExecuteNonQuery 方法

定义

针对连接执行 Transact-SQL 语句,并返回受影响的行数。

public:
 virtual int ExecuteNonQuery();
public:
 override int ExecuteNonQuery();
public int ExecuteNonQuery();
public override int ExecuteNonQuery();
abstract member ExecuteNonQuery : unit -> int
override this.ExecuteNonQuery : unit -> int
override this.ExecuteNonQuery : unit -> int
Public Function ExecuteNonQuery () As Integer
Public Overrides Function ExecuteNonQuery () As Integer

返回

受影响的行数。

实现

例外

如果设置为 SqlDbType,则使用二进制Value 以外的其他Stream项。 有关流式处理的详细信息,请参阅 SqlClient 流式处理支持

-或-

设置为 /a0> 时使用了除 CharNCharNVarCharVarCharXml 以外的其他项

-或-

设置为SqlDbType时使用了 ValueXmlReader项。

针对锁定行执行命令时发生异常。 使用 Microsoft .NET Framework 版本 1.0 时,不会生成此异常。

-或-

流式处理操作期间发生超时。 有关流式处理的详细信息,请参阅 SqlClient 流式处理支持

流式处理操作期间发生错误StreamXmlReaderTextReader对象。 有关流式处理的详细信息,请参阅 SqlClient 流式处理支持

SqlConnection 流式处理操作期间关闭或删除。 有关流式处理的详细信息,请参阅 SqlClient 流式处理支持

Stream XmlReader流式处理操作期间关闭或TextReader对象。 有关流式处理的详细信息,请参阅 SqlClient 流式处理支持

示例

以下示例创建一个并使用 /&a0> 执行它 。 此示例传递的字符串是 Transact-SQL 语句(如 UPDATE、INSERT 或 DELETE)和用于连接到数据源的字符串。

private static void CreateCommand(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(queryString, connection);
        command.Connection.Open();
        command.ExecuteNonQuery();
    }
}
Public Sub CreateCommand(ByVal queryString As String, _
  ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        command.Connection.Open()
        command.ExecuteNonQuery()
    End Using
End Sub

注解

可以使用 ExecuteNonQuery 目录操作(例如,查询数据库的结构或创建数据库对象(如表)或更改数据库中的数据,而无需执行 DataSet UPDATE、INSERT 或 DELETE 语句。

尽管不 ExecuteNonQuery 返回任何行,但映射到参数的任何输出参数或返回值都填充了数据。

对于 UPDATE、INSERT 和 DELETE 语句,返回值是受命令影响的行数。 对于所有其他类型的语句,返回值为 -1。

当插入或更新表上存在触发器时,返回值包括受插入或更新操作影响的行数以及触发器或触发器影响的行数。

在连接上设置 SET NOCOUNT ON 时(在执行命令之前或作为执行命令的一部分),或者作为由命令执行启动的触发器的一部分),受单个语句影响的行停止导致此方法返回的行计数。

如果未检测到导致计数的语句,则返回值为 -1。 如果发生回滚,则返回值也为 -1。

适用于

另请参阅