Creating a SqlCommand Object
There are two ways you can create a SqlCommand object:
• Use one of the SqlCommand constructors.
• Call the CreateCommand() method of a SqlConnection object.
You'll see how to use both these ways to create SqlCommand objects next.
Note You can use the same ways shown in the following sections to create an
OleDbCommand or OdbcCommand object.
Creating a SqlCommand Object Using a Constructor
The SqlCommand constructors are as follows:
SqlCommand(string commandText, SqlConnection mySqlConnection)
SqlCommand(string commandText, SqlConnection mySqlConnection, SqlTransaction
commandText contains your SQL statement, stored procedure call, or table to retrieve
mySqlConnection is your SqlConnection object.
mySqlTransaction is your SqlTransaction object.
Before you use a SqlCommand object you first need a SqlConnection object, which is
used to communicate with a SQL Server database:
Next, you can create a new SqlCommand object using the following statement:
SqlCommand mySqlCommand = new SqlCommand();
You then set the Connection property of mySqlCommand to mySqlConnection:
mySqlCommand.Connection = mySqlConnection;
The mySqlCommand object will then use mySqlConnection to communicate with the
Now, the CommandType property of a Connection object determines the type of
command to be executed. You can use any of the values in the
System.Data.CommandType enumeration to specify the CommandType property. Table
8.3 shows the CommandType enumeration values.
Table 8.3: CommandType ENUMERATION VALUES
Text Indicates the command is a SQL statement. Text is the default.
StoredProcedure Indicates the command is a stored procedure call.
TableDirect Indicates the name of a table, for which all rows and columns are to be
retrieved. Note: SqlCommand objects don't support TableDirect. You
have to use an object of one of the other Command classes instead.
You'll see how to use all three of these command types in this chapter. For now, I'll focus
on the default Text command type, which indicates the command is a SQL statement.
You set the command to be executed using the CommandText property of your
Command object. The following example sets the CommandText property of
mySqlCommand to a SELECT statement:
"SELECT TOP 10 CustomerID, CompanyName, ContactName, Address " +
"FROM Customers " +
"ORDER BY CustomerID";
You can also pass the command and the Connection object to the constructor in one step
when creating a Command object. For example:
SqlCommand mySqlCommand = new SqlCommand(
"SELECT TOP 5 CustomerID, CompanyName, ContactName, Address " +
"FROM Customers " +
"ORDER BY CustomerID",
In the next section, you'll learn how to create a SqlCommand object using the
CreateCommand() method of a SqlConnection object.
Creating a SqlCommand Object Using the CreateCommand() Method
Rather than creating a SqlCommand object using the constructors, you can use the
CreateCommand() method of a SqlConnection object. The CreateCommand() method
returns a new SqlCommand object. For example:
SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
The mySqlCommand object will use mySqlConnection to communicate with the