Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения: .NET Framework
.NET .NET
Standard
Поставщик данных Microsoft SqlClient для SQL Server содержит объект SqlCommand, наследуемый от DbCommand. Этот объект предоставляет методы для выполнения команд на основе типа команды и требуемого возвращаемого значения, как описано в следующей таблице.
| Команда | Возвращаемое значение |
|---|---|
ExecuteReader |
Возвращает объект DataReader. |
ExecuteScalar |
Возвращает одно скалярное значение. |
ExecuteNonQuery |
Выполняет команду, которая не возвращает строк. |
ExecuteXMLReader |
Возвращает значение типа XmlReader. Этот метод предусмотрен только для объекта SqlCommand. |
Каждый строго типизированный объект команды поддерживает также перечисление CommandType, которое указывает способ интерпретации строки команды, как описано в следующей таблице.
| CommandType | Description |
|---|---|
Text |
Команда SQL, определяющая инструкции, выполняемые в источнике данных. |
StoredProcedure |
Имя хранимой процедуры. Свойство команды Parameters может использоваться для доступа к входным и выходным параметрам и возвращаемым значениям независимо от вызываемого метода Execute. |
TableDirect |
Имя таблицы. |
Внимание
При использовании ExecuteReader возвращаемые значения и выходные параметры будут недоступными, пока не будет закрыт DataReader.
Пример
Следующий пример кода демонстрирует способ создания объекта SqlCommand для выполнения хранимой процедуры путем установки его свойств. Объект SqlParameter используется для задания входных параметров хранимой процедуры. Команда выполняется с помощью метода ExecuteReader, и выходное значение из SqlDataReader отображается в окне консоли.
static void GetSalesByCategory(string connectionString,
string categoryName)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
// Create the command and set its properties.
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandText = "SalesByCategory";
command.CommandType = CommandType.StoredProcedure;
// Add the input parameter and set its properties.
SqlParameter parameter = new SqlParameter();
parameter.ParameterName = "@CategoryName";
parameter.SqlDbType = SqlDbType.NVarChar;
parameter.Direction = ParameterDirection.Input;
parameter.Value = categoryName;
// Add the parameter to the Parameters collection.
command.Parameters.Add(parameter);
// Open the connection and execute the reader.
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
if (reader.HasRows)
{
while (reader.Read())
{
Console.WriteLine("{0}: {1:C}", reader[0], reader[1]);
}
}
else
{
Console.WriteLine("No rows found.");
}
reader.Close();
}
}
}
Устранение неполадок с командами
Поставщик данных Microsoft SqlClient для SQL Server добавляет счетчики диагностики, позволяющие обнаружить временные проблемы, связанные с невыполненными командами. Дополнительные сведения см. в статье Счетчики диагностики в SqlClient.