Executes a Transact-SQL statement against the connection and returns the number of rows affected.
[Visual Basic]
Public Overridable Function ExecuteNonQuery() As Integer Implements _
IDbCommand.ExecuteNonQuery
[C#]
public virtual int ExecuteNonQuery();
[C++]
public: virtual int ExecuteNonQuery();
[JScript]
public function ExecuteNonQuery() : int;
Return Value
The number of rows affected.
Implements
IDbCommand.ExecuteNonQuery
Exceptions
| Exception Type | Condition |
| SqlException | An exception occurred while executing the command against a locked row. This exception is not generated when using Microsoft .NET Framework version 1.0. |
Remarks
You can use the ExecuteNonQuery to perform catalog operations (for example, querying the structure of a database or creating database objects such as tables), or to change the data in a database without using a DataSet by executing UPDATE, INSERT, or DELETE statements.
Although the ExecuteNonQuery does not return any rows, any output parameters or return values mapped to parameters are populated with data.
For UPDATE, INSERT, and DELETE statements, the return value is the number of rows affected by the command. For all other types of statements, the return value is -1. If a rollback occurs, the return value is also -1.
Example
[Visual Basic, C#, C++] The following example creates a SqlCommand and then executes it using ExecuteNonQuery. The example is passed a string that is a Transact-SQL statement (such as UPDATE, INSERT, or DELETE) and a string to use to connect to the data source.
[Visual Basic]
Public Sub CreateMySqlCommand(myExecuteQuery As String, myConnection As SqlConnection)
Dim myCommand As New SqlCommand(myExecuteQuery, myConnection)
myCommand.Connection.Open()
myCommand.ExecuteNonQuery()
myConnection.Close()
End Sub 'CreateMySqlCommand
[C#]
public void CreateMySqlCommand(string myExecuteQuery, SqlConnection myConnection)
{
SqlCommand myCommand = new SqlCommand(myExecuteQuery, myConnection);
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
}
[C++]
public:
void CreateMySqlCommand(String* myExecuteQuery, SqlConnection* myConnection)
{
SqlCommand* myCommand = new SqlCommand(myExecuteQuery, myConnection);
myCommand->Connection->Open();
myCommand->ExecuteNonQuery();
myConnection->Close();
}
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework
See Also
SqlCommand Class | SqlCommand Members | System.Data.SqlClient Namespace