IDbCommand Interface


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Represents an SQL statement that is executed while connected to a data source, and is implemented by .NET Framework data providers that access relational databases.

Namespace:   System.Data
Assembly:  System.Data (in System.Data.dll)

public interface IDbCommand : IDisposable


Gets or sets the text command to run against the data source.


Gets or sets the wait time before terminating the attempt to execute a command and generating an error.


Indicates or specifies how the CommandText property is interpreted.


Gets or sets the IDbConnection used by this instance of the IDbCommand.


Gets or sets the transaction within which the Command object of a .NET Framework data provider executes.


Gets or sets how command results are applied to the DataRow when used by the Update method of a DbDataAdapter.


Attempts to cancels the execution of an IDbCommand.


Creates a new instance of an IDbDataParameter object.


Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.(Inherited from IDisposable.)


Executes an SQL statement against the Connection object of a .NET Framework data provider, and returns the number of rows affected.


Executes the CommandText against the Connection and builds an IDataReader.


Executes the CommandText against the Connection, and builds an IDataReader using one of the CommandBehavior values.


Executes the query, and returns the first column of the first row in the resultset returned by the query. Extra columns or rows are ignored.


Creates a prepared (or compiled) version of the command on the data source.

The IDbCommand interface enables an inheriting class to implement a Command class, which represents an SQL statement that is executed at a data source. For more information about Command classes, see Executing a Command.

An application does not create an instance of the IDbCommand interface directly, but creates an instance of a class that inherits IDbCommand.

Classes that inherit IDbCommand must implement all inherited members, and typically define additional members to add provider-specific functionality. For example, the IDbCommand interface defines the ExecuteNonQuery method. In turn, the SqlCommand class inherits this method, and also defines the ExecuteXmlReader method.

Notes to Implementers:

To promote consistency among .NET Framework data providers, name the inheriting class in the form PrvClassname where Prv is the uniform prefix given to all classes in a specific .NET Framework data provider namespace. For example, Sql is the prefix of the SqlCommand class in the System.Data.SqlClient namespace.

When you inherit from the IDbCommand interface, you should implement the following constructors:




Initializes a new instance of the PrvCommand class.

PrvCommand(string cmdText)

Initializes a new instance of the PrvCommand class with the text of the query.

PrvCommand(string cmdText, PrvConnection connection)

Initializes a new instance of the PrvCommand class with the text of the query and a PrvConnection.

PrvCommand(string cmdText, PrvConnection connection, PrvTransaction transaction)

Initializes a new instance of the PrvCommand class with the text of the query, a PrvConnection, and the PrvTransaction.

The following example creates instances of the derived classes, SqlConnection, SqlCommand, and SqlDataReader. The example reads through the data, writing it to the console. Finally, the example closes the SqlDataReader, then the SqlConnection.

private static void ReadOrderData(string connectionString)
    string queryString = 
        "SELECT OrderID, CustomerID FROM dbo.Orders;";
    using (SqlConnection connection = new SqlConnection(
        SqlCommand command = new SqlCommand(
            queryString, connection);
        SqlDataReader reader = command.ExecuteReader();
            while (reader.Read())
                Console.WriteLine(String.Format("{0}, {1}",
                    reader[0], reader[1]));
            // Always call Close when done reading.

.NET Framework
Available since 1.1
Return to top