当创建 SqlCommand 的实例时,读/写属性将被设置为它们的初始值。有关这些值的列表,请参见 SqlCommand 构造函数。
SqlCommand 特别提供了以下对 SQL Server 数据库执行命令的方法:
项
说明
BeginExecuteNonQuery
启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行,一般情况下执行 Insert、Delete、Update 和 SET 语句等命令。每调用一次 BeginExecuteNonQuery,都必须调用一次通常在单独的线程上完成操作的 EndExecuteNonQuery。
BeginExecuteReader
启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行,并从服务器中检索一个或多个结果集。每调用一次 BeginExecuteReader,都必须调用一次通常在单独的线程上完成操作的 EndExecuteReader。
BeginExecuteXmlReader
启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行。每调用一次 BeginExecuteXmlReader,都必须调用一次 EndExecuteXmlReader,它通常在单独的线程上完成操作,并且返回一个 XmlReader 对象。
ExecuteReader
执行返回行的命令。为了提高性能,ExecuteReader 使用 Transact-SQL sp_executesql 系统存储过程调用命令。因此,如果 ExecuteReader 用于执行命令(例如 Transact-SQL SET 语句),则它可能不会产生预期的效果。
ExecuteNonQuery
执行 Transact-SQL Insert、Delete、Update 及 SET 语句等命令。
ExecuteScalar
从数据库中检索单个值(例如一个聚合值)。
ExecuteXmlReader
将 CommandText 发送到 Connection 并生成一个 XmlReader 对象。
您可以重置 CommandText 属性并重复使用 SqlCommand 对象。但是,在执行新的命令或先前命令之前,必须关闭
如果执行 SqlCommand 的方法生成
示例
下面的示例创建一个 SqlConnection、一个 SqlCommand 和一个 SqlDataReader。该示例读取所有数据,并将其写到控制台。最后,该示例先关闭 SqlDataReader,然后关闭 SqlConnection。
private static void ReadOrderData(string connectionString)
{
string queryString =
"Select orderID, CustomerID FROM dbo.Orders;";
using (SqlConnection connection = new SqlConnection(
connectionString))
{
SqlCommand command = new SqlCommand(
queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
try
{
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}",
reader[0], reader[1]));
}
}
finally
{
// Always call Close when done reading.
reader.Close();
}
}
}
转载:http://msdn2.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommand(VS.80).aspx
SqlException,那么当严重级别小于等于 19 时,SqlConnection 将仍保持打开状态。当严重级别大于等于 20 时,服务器通常会关闭 SqlConnection。但是,用户可以重新打开连接并继续操作。
SqlCommand 特别提供了以下对 SQL Server 数据库执行命令的方法:
项
说明
BeginExecuteNonQuery
启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行,一般情况下执行 Insert、Delete、Update 和 SET 语句等命令。每调用一次 BeginExecuteNonQuery,都必须调用一次通常在单独的线程上完成操作的 EndExecuteNonQuery。
BeginExecuteReader
启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行,并从服务器中检索一个或多个结果集。每调用一次 BeginExecuteReader,都必须调用一次通常在单独的线程上完成操作的 EndExecuteReader。
BeginExecuteXmlReader
启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行。每调用一次 BeginExecuteXmlReader,都必须调用一次 EndExecuteXmlReader,它通常在单独的线程上完成操作,并且返回一个 XmlReader 对象。
ExecuteReader
执行返回行的命令。为了提高性能,ExecuteReader 使用 Transact-SQL sp_executesql 系统存储过程调用命令。因此,如果 ExecuteReader 用于执行命令(例如 Transact-SQL SET 语句),则它可能不会产生预期的效果。
ExecuteNonQuery
执行 Transact-SQL Insert、Delete、Update 及 SET 语句等命令。
ExecuteScalar
从数据库中检索单个值(例如一个聚合值)。
ExecuteXmlReader
将 CommandText 发送到 Connection 并生成一个 XmlReader 对象。
您可以重置 CommandText 属性并重复使用 SqlCommand 对象。但是,在执行新的命令或先前命令之前,必须关闭
如果执行 SqlCommand 的方法生成
示例
下面的示例创建一个 SqlConnection、一个 SqlCommand 和一个 SqlDataReader。该示例读取所有数据,并将其写到控制台。最后,该示例先关闭 SqlDataReader,然后关闭 SqlConnection。
private static void ReadOrderData(string connectionString)
{
string queryString =
"Select orderID, CustomerID FROM dbo.Orders;";
using (SqlConnection connection = new SqlConnection(
connectionString))
{
SqlCommand command = new SqlCommand(
queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
try
{
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}",
reader[0], reader[1]));
}
}
finally
{
// Always call Close when done reading.
reader.Close();
}
}
}
转载:http://msdn2.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommand(VS.80).aspx
SqlException,那么当严重级别小于等于 19 时,SqlConnection 将仍保持打开状态。当严重级别大于等于 20 时,服务器通常会关闭 SqlConnection。但是,用户可以重新打开连接并继续操作。