SqlCommand Класс

Определение

Представляет инструкцию Transact-SQL или хранимую процедуру, выполняемую над базой данных SQL Server. Этот класс не наследуется.

public ref class SqlCommand sealed : System::Data::Common::DbCommand, ICloneable
public sealed class SqlCommand : System.Data.Common.DbCommand, ICloneable
type SqlCommand = class
    inherit DbCommand
    interface ICloneable
Public NotInheritable Class SqlCommand
Inherits DbCommand
Implements ICloneable
Наследование
SqlCommand
Реализации

Примеры

В следующем примере создаются SqlConnection, и SqlCommandSqlDataReader. В примере данные считываются, записывая их в консоль. Наконец, пример закрывает SqlDataReader и затем по SqlConnection мере выхода из Using блоков кода.

using System;
using System.Data;
using Microsoft.Data.SqlClient;


namespace SqlCommandCS
{
    class Program
    {
        static void Main()
        {
            string str = "Data Source=(local);Initial Catalog=Northwind;"
                + "Integrated Security=SSPI";
            ReadOrderData(str);

        }

        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();
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        Console.WriteLine(String.Format("{0}, {1}",
                            reader[0], reader[1]));
                    }
                }
            }
        }

В следующем примере показано, как создавать и выполнять различные типы объектов SqlCommand.

Сначала необходимо создать образец базы данных, выполнив следующий скрипт:

USE [master]
GO

CREATE DATABASE [MySchool]
GO

USE [MySchool]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[CourseExtInfo] @CourseId int
as
select c.CourseID,c.Title,c.Credits,d.Name as DepartmentName
from Course as c left outer join Department as d on c.DepartmentID=d.DepartmentID
where c.CourseID=@CourseId

GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[DepartmentInfo] @DepartmentId int,@CourseCount int output
as
select @CourseCount=Count(c.CourseID)
from course as c
where c.DepartmentID=@DepartmentId

select d.DepartmentID,d.Name,d.Budget,d.StartDate,d.Administrator
from Department as d
where d.DepartmentID=@DepartmentId

GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create PROCEDURE [dbo].[GetDepartmentsOfSpecifiedYear]
@Year int,@BudgetSum money output
AS
BEGIN
SELECT @BudgetSum=SUM([Budget])
FROM [MySchool].[dbo].[Department]
Where YEAR([StartDate])=@Year

SELECT [DepartmentID]
,[Name]
,[Budget]
,[StartDate]
,[Administrator]
FROM [MySchool].[dbo].[Department]
Where YEAR([StartDate])=@Year

END
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Course]([CourseID] [nvarchar](10) NOT NULL,
[Year] [smallint] NOT NULL,
[Title] [nvarchar](100) NOT NULL,
[Credits] [int] NOT NULL,
[DepartmentID] [int] NOT NULL,
CONSTRAINT [PK_Course] PRIMARY KEY CLUSTERED
(
[CourseID] ASC,
[Year] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]

GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Department]([DepartmentID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[Budget] [money] NOT NULL,
[StartDate] [datetime] NOT NULL,
[Administrator] [int] NULL,
CONSTRAINT [PK_Department] PRIMARY KEY CLUSTERED
(
[DepartmentID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]

GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Person]([PersonID] [int] IDENTITY(1,1) NOT NULL,
[LastName] [nvarchar](50) NOT NULL,
[FirstName] [nvarchar](50) NOT NULL,
[HireDate] [datetime] NULL,
[EnrollmentDate] [datetime] NULL,
CONSTRAINT [PK_School.Student] PRIMARY KEY CLUSTERED
(
[PersonID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]

GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[StudentGrade]([EnrollmentID] [int] IDENTITY(1,1) NOT NULL,
[CourseID] [nvarchar](10) NOT NULL,
[StudentID] [int] NOT NULL,
[Grade] [decimal](3, 2) NOT NULL,
CONSTRAINT [PK_StudentGrade] PRIMARY KEY CLUSTERED
(
[EnrollmentID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]

GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create view [dbo].[EnglishCourse]
as
select c.CourseID,c.Title,c.Credits,c.DepartmentID
from Course as c join Department as d on c.DepartmentID=d.DepartmentID
where d.Name=N'English'

GO
INSERT [dbo].[Course] ([CourseID], [Year], [Title], [Credits], [DepartmentID]) VALUES (N'C1045', 2012, N'Calculus', 4, 7)
INSERT [dbo].[Course] ([CourseID], [Year], [Title], [Credits], [DepartmentID]) VALUES (N'C1061', 2012, N'Physics', 4, 1)
INSERT [dbo].[Course] ([CourseID], [Year], [Title], [Credits], [DepartmentID]) VALUES (N'C2021', 2012, N'Composition', 3, 2)
INSERT [dbo].[Course] ([CourseID], [Year], [Title], [Credits], [DepartmentID]) VALUES (N'C2042', 2012, N'Literature', 4, 2)
SET IDENTITY_INSERT [dbo].[Department] ON

INSERT [dbo].[Department] ([DepartmentID], [Name], [Budget], [StartDate], [Administrator]) VALUES (1, N'Engineering', 350000.0000, CAST(0x0000999C00000000 AS DateTime), 2)
INSERT [dbo].[Department] ([DepartmentID], [Name], [Budget], [StartDate], [Administrator]) VALUES (2, N'English', 120000.0000, CAST(0x0000999C00000000 AS DateTime), 6)
INSERT [dbo].[Department] ([DepartmentID], [Name], [Budget], [StartDate], [Administrator]) VALUES (4, N'Economics', 200000.0000, CAST(0x0000999C00000000 AS DateTime), 4)
INSERT [dbo].[Department] ([DepartmentID], [Name], [Budget], [StartDate], [Administrator]) VALUES (7, N'Mathematics', 250024.0000, CAST(0x0000999C00000000 AS DateTime), 3)
SET IDENTITY_INSERT [dbo].[Department] OFF
SET IDENTITY_INSERT [dbo].[Person] ON

INSERT [dbo].[Person] ([PersonID], [LastName], [FirstName], [HireDate], [EnrollmentDate]) VALUES (1, N'Hu', N'Nan', NULL, CAST(0x0000A0BF00000000 AS DateTime))
INSERT [dbo].[Person] ([PersonID], [LastName], [FirstName], [HireDate], [EnrollmentDate]) VALUES (2, N'Norman', N'Laura', NULL, CAST(0x0000A0BF00000000 AS DateTime))
INSERT [dbo].[Person] ([PersonID], [LastName], [FirstName], [HireDate], [EnrollmentDate]) VALUES (3, N'Olivotto', N'Nino', NULL, CAST(0x0000A0BF00000000 AS DateTime))
INSERT [dbo].[Person] ([PersonID], [LastName], [FirstName], [HireDate], [EnrollmentDate]) VALUES (4, N'Anand', N'Arturo', NULL, CAST(0x0000A0BF00000000 AS DateTime))
INSERT [dbo].[Person] ([PersonID], [LastName], [FirstName], [HireDate], [EnrollmentDate]) VALUES (5, N'Jai', N'Damien', NULL, CAST(0x0000A0BF00000000 AS DateTime))
INSERT [dbo].[Person] ([PersonID], [LastName], [FirstName], [HireDate], [EnrollmentDate]) VALUES (6, N'Holt', N'Roger', CAST(0x000097F100000000 AS DateTime), NULL)
INSERT [dbo].[Person] ([PersonID], [LastName], [FirstName], [HireDate], [EnrollmentDate]) VALUES (7, N'Martin', N'Randall', CAST(0x00008B1A00000000 AS DateTime), NULL)
SET IDENTITY_INSERT [dbo].[Person] OFF
SET IDENTITY_INSERT [dbo].[StudentGrade] ON

INSERT [dbo].[StudentGrade] ([EnrollmentID], [CourseID], [StudentID], [Grade]) VALUES (1, N'C1045', 1, CAST(3.50 AS Decimal(3, 2)))
INSERT [dbo].[StudentGrade] ([EnrollmentID], [CourseID], [StudentID], [Grade]) VALUES (2, N'C1045', 2, CAST(3.00 AS Decimal(3, 2)))
INSERT [dbo].[StudentGrade] ([EnrollmentID], [CourseID], [StudentID], [Grade]) VALUES (3, N'C1045', 3, CAST(2.50 AS Decimal(3, 2)))
INSERT [dbo].[StudentGrade] ([EnrollmentID], [CourseID], [StudentID], [Grade]) VALUES (4, N'C1045', 4, CAST(4.00 AS Decimal(3, 2)))
INSERT [dbo].[StudentGrade] ([EnrollmentID], [CourseID], [StudentID], [Grade]) VALUES (5, N'C1045', 5, CAST(3.50 AS Decimal(3, 2)))
INSERT [dbo].[StudentGrade] ([EnrollmentID], [CourseID], [StudentID], [Grade]) VALUES (6, N'C1061', 1, CAST(4.00 AS Decimal(3, 2)))
INSERT [dbo].[StudentGrade] ([EnrollmentID], [CourseID], [StudentID], [Grade]) VALUES (7, N'C1061', 3, CAST(3.50 AS Decimal(3, 2)))
INSERT [dbo].[StudentGrade] ([EnrollmentID], [CourseID], [StudentID], [Grade]) VALUES (8, N'C1061', 4, CAST(2.50 AS Decimal(3, 2)))
INSERT [dbo].[StudentGrade] ([EnrollmentID], [CourseID], [StudentID], [Grade]) VALUES (9, N'C1061', 5, CAST(1.50 AS Decimal(3, 2)))
INSERT [dbo].[StudentGrade] ([EnrollmentID], [CourseID], [StudentID], [Grade]) VALUES (10, N'C2021', 1, CAST(2.50 AS Decimal(3, 2)))
INSERT [dbo].[StudentGrade] ([EnrollmentID], [CourseID], [StudentID], [Grade]) VALUES (11, N'C2021', 2, CAST(3.50 AS Decimal(3, 2)))
INSERT [dbo].[StudentGrade] ([EnrollmentID], [CourseID], [StudentID], [Grade]) VALUES (12, N'C2021', 4, CAST(3.00 AS Decimal(3, 2)))
INSERT [dbo].[StudentGrade] ([EnrollmentID], [CourseID], [StudentID], [Grade]) VALUES (13, N'C2021', 5, CAST(3.00 AS Decimal(3, 2)))
INSERT [dbo].[StudentGrade] ([EnrollmentID], [CourseID], [StudentID], [Grade]) VALUES (14, N'C2042', 1, CAST(2.00 AS Decimal(3, 2)))
INSERT [dbo].[StudentGrade] ([EnrollmentID], [CourseID], [StudentID], [Grade]) VALUES (15, N'C2042', 2, CAST(3.50 AS Decimal(3, 2)))
INSERT [dbo].[StudentGrade] ([EnrollmentID], [CourseID], [StudentID], [Grade]) VALUES (16, N'C2042', 3, CAST(4.00 AS Decimal(3, 2)))
INSERT [dbo].[StudentGrade] ([EnrollmentID], [CourseID], [StudentID], [Grade]) VALUES (17, N'C2042', 5, CAST(3.00 AS Decimal(3, 2)))
SET IDENTITY_INSERT [dbo].[StudentGrade] OFF
ALTER TABLE [dbo].[Course]  WITH CHECK ADD  CONSTRAINT [FK_Course_Department] FOREIGN KEY([DepartmentID])
REFERENCES [dbo].[Department] ([DepartmentID])
GO
ALTER TABLE [dbo].[Course] CHECK CONSTRAINT [FK_Course_Department]
GO
ALTER TABLE [dbo].[StudentGrade]  WITH CHECK ADD  CONSTRAINT [FK_StudentGrade_Student] FOREIGN KEY([StudentID])
REFERENCES [dbo].[Person] ([PersonID])
GO
ALTER TABLE [dbo].[StudentGrade] CHECK CONSTRAINT [FK_StudentGrade_Student]
GO

Затем скомпилируйте и выполните следующее:

using System;
using System.Data;
using Microsoft.Data.SqlClient;
using System.Threading.Tasks;

class Program
{

    static class SqlHelper
    {
        // Set the connection, command, and then execute the command with non query.
        public static Int32 ExecuteNonQuery(String connectionString, String commandText,
        CommandType commandType, params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                using (SqlCommand cmd = new SqlCommand(commandText, conn))
                {
                    // There're three command types: StoredProcedure, Text, TableDirect. The TableDirect
                    // type is only for OLE DB.
                    cmd.CommandType = commandType;
                    cmd.Parameters.AddRange(parameters);

                    conn.Open();
                    return cmd.ExecuteNonQuery();
                }
            }
        }

        // Set the connection, command, and then execute the command and only return one value.
        public static Object ExecuteScalar(String connectionString, String commandText,
        CommandType commandType, params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                using (SqlCommand cmd = new SqlCommand(commandText, conn))
                {
                    cmd.CommandType = commandType;
                    cmd.Parameters.AddRange(parameters);

                    conn.Open();
                    return cmd.ExecuteScalar();
                }
            }
        }

        // Set the connection, command, and then execute the command with query and return the reader.
        public static SqlDataReader ExecuteReader(String connectionString, String commandText,
        CommandType commandType, params SqlParameter[] parameters)
        {
            SqlConnection conn = new SqlConnection(connectionString);

            using (SqlCommand cmd = new SqlCommand(commandText, conn))
            {
                cmd.CommandType = commandType;
                cmd.Parameters.AddRange(parameters);

                conn.Open();
                // When using CommandBehavior.CloseConnection, the connection will be closed when the
                // IDataReader is closed.
                SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);

                return reader;
            }
        }
    }

    static void Main(string[] args)
    {
        String connectionString = "Data Source=(local);Initial Catalog=MySchool;Integrated Security=True;";

        CountCourses(connectionString, 2012);
        Console.WriteLine();

        Console.WriteLine("Following result is the departments that started from 2007:");
        GetDepartments(connectionString, 2007);
        Console.WriteLine();

        Console.WriteLine("Add the credits when the credits of course is lower than 4.");
        AddCredits(connectionString, 4);
        Console.WriteLine();

        Console.WriteLine("Please press any key to exit...");
        Console.ReadKey();
    }

    static void CountCourses(String connectionString, Int32 year)
    {
        String commandText = "Select Count([CourseID]) FROM [MySchool].[dbo].[Course] Where Year=@Year";
        SqlParameter parameterYear = new SqlParameter("@Year", SqlDbType.Int);
        parameterYear.Value = year;

        Object oValue = SqlHelper.ExecuteScalar(connectionString, commandText, CommandType.Text, parameterYear);
        Int32 count;
        if (Int32.TryParse(oValue.ToString(), out count))
            Console.WriteLine("There {0} {1} course{2} in {3}.", count > 1 ? "are" : "is", count, count > 1 ? "s" : null, year);
    }

    // Display the Departments that start from the specified year.
    static void GetDepartments(String connectionString, Int32 year)
    {
        String commandText = "dbo.GetDepartmentsOfSpecifiedYear";

        // Specify the year of StartDate
        SqlParameter parameterYear = new SqlParameter("@Year", SqlDbType.Int);
        parameterYear.Value = year;

        // When the direction of parameter is set as Output, you can get the value after
        // executing the command.
        SqlParameter parameterBudget = new SqlParameter("@BudgetSum", SqlDbType.Money);
        parameterBudget.Direction = ParameterDirection.Output;

        using (SqlDataReader reader = SqlHelper.ExecuteReader(connectionString, commandText,
        CommandType.StoredProcedure, parameterYear, parameterBudget))
        {
            Console.WriteLine("{0,-20}{1,-20}{2,-20}{3,-20}", "Name", "Budget", "StartDate",
            "Administrator");
            while (reader.Read())
            {
                Console.WriteLine("{0,-20}{1,-20:C}{2,-20:d}{3,-20}", reader["Name"],
                reader["Budget"], reader["StartDate"], reader["Administrator"]);
            }
        }
        Console.WriteLine("{0,-20}{1,-20:C}", "Sum:", parameterBudget.Value);
    }

    // If credits of course is lower than the certain value, the method will add the credits.
    static void AddCredits(String connectionString, Int32 creditsLow)
    {
        String commandText = "Update [MySchool].[dbo].[Course] Set Credits=Credits+1 Where Credits<@Credits";

        SqlParameter parameterCredits = new SqlParameter("@Credits", creditsLow);

        Int32 rows = SqlHelper.ExecuteNonQuery(connectionString, commandText, CommandType.Text, parameterCredits);

        Console.WriteLine("{0} row{1} {2} updated.", rows, rows > 1 ? "s" : null, rows > 1 ? "are" : "is");
    }
}

Комментарии

При создании экземпляра SqlCommand свойства чтения и записи задаются в качестве исходных значений. Список этих значений см. в конструкторе SqlCommand.

SqlCommandвключает следующие методы для выполнения команд в базе данных SQL Server:

Item Описание
BeginExecuteNonQuery Инициирует асинхронное выполнение инструкции Transact-SQL или хранимой процедуры, описанной в этом SqlCommandразделе , обычно выполняя такие команды, как инструкции INSERT, DELETE, UPDATE и SET. Каждый вызов BeginExecuteNonQuery должен быть связан с вызовом EndExecuteNonQuery , который завершает операцию, как правило, в отдельном потоке.
BeginExecuteReader Инициирует асинхронное выполнение инструкции Transact-SQL или хранимой процедуры, описанной в этом SqlCommand разделе, и извлекает один или несколько наборов результатов с сервера. Каждый вызов BeginExecuteReader должен быть связан с вызовом EndExecuteReader , который завершает операцию, как правило, в отдельном потоке.
BeginExecuteXmlReader Инициирует асинхронное выполнение инструкции Transact-SQL или хранимой процедуры, определенной в данном объекте SqlCommand. Каждый вызов BeginExecuteXmlReader должен быть связан с вызовом EndExecuteXmlReader, который завершает операцию, как правило, в отдельном потоке и возвращает XmlReader объект .
ExecuteReader Выполняет команды, возвращающие строки. Для повышения производительности ExecuteReader вызывает команды с помощью системной хранимой процедуры Transact-SQL sp_executesql . Таким образом, ExecuteReader может оказаться нецелесообразным, если используется для выполнения команд, таких как инструкции Set Transact-SQL.
ExecuteNonQuery Выполняет такие команды, как Инструкции Transact-SQL INSERT, DELETE, UPDATE и SET.
ExecuteScalar Извлекает одно значение (например, агрегатное) из базы данных.
ExecuteXmlReader Отправляет CommandText в Connection и строит объект XmlReader.

Можно сбросить CommandText свойство и повторно использовать SqlCommand объект . Однако перед выполнением SqlDataReader новой или предыдущей команды необходимо закрыть .

SqlException Если создается методом, выполняющим SqlCommand, SqlConnection объект остается открытым, если уровень серьезности равен 19 или меньше. Если уровень серьезности равен 20 или выше, сервер обычно закрывает SqlConnection. Тем не менее, пользователь может опять открыть подключение и продолжить работу.

Примечание

Безымяные параметры, также называемые порядком, не поддерживаются поставщиком данных платформа .NET Framework для SQL Server.

Конструкторы

SqlCommand()

Инициализирует новый экземпляр класса SqlCommand.

SqlCommand(String)

Инициализирует новый экземпляр класса SqlCommand текстом запроса.

SqlCommand(String, SqlConnection)

Инициализирует новый экземпляр SqlCommand класса с текстом запроса и .SqlConnection

SqlCommand(String, SqlConnection, SqlTransaction)

Инициализирует новый экземпляр SqlCommand класса с текстом запроса , и SqlConnectionSqlTransaction .

SqlCommand(String, SqlConnection, SqlTransaction, SqlCommandColumnEncryptionSetting)

Инициализирует новый экземпляр класса SqlCommand с заданными текстом команды, подключением, транзакцией и параметром шифрования.

Свойства

ColumnEncryptionSetting

Возвращает параметр шифрования столбца для этой команды.

CommandText

Возвращает или задает инструкцию Transact-SQL, имя таблицы или хранимую процедуру, выполняемую для источника данных.

CommandTimeout

Возвращает или задает время ожидания (в секундах) перед прекращением попытки выполнить команду и выводом ошибки. По умолчанию это 30 секунд.

CommandType

Возвращает или задает значение, определяющее, как будет интерпретироваться свойство CommandText.

Connection

Возвращает или задает объект , используемый SqlConnection этим экземпляром SqlCommand .

DesignTimeVisible

Возвращает или задает значение, указывающее, будет ли объект команды видимым в элементе управления Windows Forms Designer.

EnableOptimizedParameterBinding

Возвращает или задает значение, указывающее, должен ли объект команды оптимизировать производительность параметров, отключая направления Output и InputOutput при отправке команды в SQL Server.

Notification

Получает или задает значение, указывающее объект SqlNotificationRequest, связанный с данной командой.

NotificationAutoEnlist

Возвращает или задает значение, указывающее, должно ли приложение автоматически получать уведомления о запросах от общего объекта SqlDependency.

Parameters

Возвращает объект SqlParameterCollection .

RetryLogicProvider

Получает или задает значение, указывающее объект SqlRetryLogicBaseProvider, связанный с данной командой.

Transaction

Возвращает или задает транзакцию SqlTransaction, в которой выполняется команда SqlCommand.

UpdatedRowSource

Возвращает или задает способ применения результатов команд к при DataRow использовании методом Update объекта DbDataAdapter.

Методы

BeginExecuteNonQuery()

Инициирует асинхронное выполнение инструкции Transact-SQL или хранимой процедуры, описанной в этом SqlCommand .

BeginExecuteNonQuery(AsyncCallback, Object)

Инициирует асинхронное выполнение инструкции Transact-SQL или хранимой процедуры, описанной в данном SqlCommand параметре , с учетом процедуры обратного вызова и сведений о состоянии.

BeginExecuteReader()

Инициирует асинхронное выполнение инструкции Transact-SQL или хранимой процедуры, определенной в данном объекте SqlCommand, и возвращает результаты в виде объекта XmlReader.

BeginExecuteReader(AsyncCallback, Object)

Инициирует асинхронное выполнение инструкции Transact-SQL или хранимой процедуры, определенной в данном объекте SqlCommand, и возвращает результаты в виде объекта XmlReader, используя процедуру обратного вызова.

BeginExecuteReader(AsyncCallback, Object, CommandBehavior)

Инициирует асинхронное выполнение инструкции Transact-SQL или хранимой процедуры, описанной в этом SqlCommand , с помощью одного изCommandBehavior значения и получение одного или нескольких результирующих наборов с сервера с учетом процедуры обратного вызова и сведений о состоянии.

BeginExecuteReader(CommandBehavior)

Инициализирует асинхронное выполнение инструкции или хранимой процедуры Transact-SQL, описанной в данном объекте SqlCommand, с использованием одного из значений CommandBehavior.

BeginExecuteXmlReader()

Инициирует асинхронное выполнение инструкции Transact-SQL или хранимой процедуры, определенной в данном объекте SqlCommand, и возвращает результаты в виде объекта XmlReader.

BeginExecuteXmlReader(AsyncCallback, Object)

Инициирует асинхронное выполнение инструкции Transact-SQL или хранимой процедуры, определенной в данном объекте SqlCommand, и возвращает результаты в виде объекта XmlReader, используя процедуру обратного вызова.

Cancel()

Пытается отменить выполнение SqlCommand .

Clone()

Создает новый объект SqlCommand, который является копией текущего экземпляра.

CreateParameter()

Создает новый экземпляр объекта SqlParameter.

EndExecuteNonQuery(IAsyncResult)

Завершает асинхронное выполнение инструкции Transact-SQL.

EndExecuteReader(IAsyncResult)

Завершает асинхронное выполнение инструкции Transact-SQL, возвращая запрошенный SqlDataReader объект .

EndExecuteXmlReader(IAsyncResult)

Завершает асинхронное выполнение инструкции Transact-SQL, возвращающей запрошенные данные в виде XML.

ExecuteNonQuery()

Выполняет для подключения инструкцию Transact-SQL и возвращает количество задействованных в инструкции строк.

ExecuteNonQueryAsync(CancellationToken)

Асинхронная версия ExecuteNonQuery() , которая выполняет инструкцию Transact-SQL для подключения и возвращает количество затронутых строк. Токен отмены можно использовать для запроса отказа от операции до истечения времени ожидания команды. Сведения об исключениях передаются в возвращенном объекте Task.

ExecuteReader()

Отправляет в CommandTextConnection и создает SqlDataReader .

ExecuteReader(CommandBehavior)

Отправляет в CommandTextConnection и создает SqlDataReader , используя одно из значений CommandBehavior .

ExecuteReaderAsync()

Асинхронная версия ExecuteReader() , которая отправляет CommandText в Connection и создает SqlDataReader . Сведения об исключениях передаются в возвращенном объекте Task.

ExecuteReaderAsync(CancellationToken)

Асинхронная версия ExecuteReader() , которая отправляет CommandText в Connection и создает SqlDataReader .

Токен отмены можно использовать для запроса отказа от операции до истечения времени ожидания команды. Сведения об исключениях передаются в возвращенном объекте Task.

ExecuteReaderAsync(CommandBehavior)

Асинхронная версия ExecuteReader(CommandBehavior) , которая отправляет CommandText в Connection и создает SqlDataReader . Сведения об исключениях передаются в возвращенном объекте Task.

ExecuteReaderAsync(CommandBehavior, CancellationToken)

Асинхронная версия ExecuteReader(CommandBehavior) , которая отправляет CommandTextConnection в и создает маркер отмены SqlDataReader , который можно использовать для запроса на отмену операции до истечения времени ожидания команды. Сведения об исключениях передаются в возвращенном объекте Task.

ExecuteScalar()

Выполняет запрос и возвращает первый столбец первой строки в результирующий набор, возвращенный запросом. Такие же дополнительные столбцы также определены.

ExecuteScalarAsync(CancellationToken)

Асинхронная версия ExecuteScalar() , которая выполняет запрос асинхронно и возвращает первый столбец первой строки в результирующем наборе, возвращаемом запросом. Такие же дополнительные столбцы также определены.

Токен отмены можно использовать для запроса отказа от операции до истечения времени ожидания команды. Сведения об исключениях передаются в возвращенном объекте Task.

ExecuteXmlReader()

Отправляет CommandText в Connection и строит объект XmlReader.

ExecuteXmlReaderAsync()

Асинхронная версия ExecuteXmlReader() , которая отправляет CommandText объект в Connection и создает XmlReader объект .

Сведения об исключениях передаются в возвращенном объекте Task.

ExecuteXmlReaderAsync(CancellationToken)

Асинхронная версия ExecuteXmlReader() , которая отправляет CommandText объект в Connection и создает XmlReader объект .

Токен отмены можно использовать для запроса отказа от операции до истечения времени ожидания команды. Сведения об исключениях передаются в возвращенном объекте Task.

Prepare()

Создает подготовленную версию команды на экземпляре SQL Server.

RegisterColumnEncryptionKeyStoreProvidersOnCommand(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>)

Регистрирует поставщиков хранилища ключей шифрования в экземпляре SqlCommand . Если эта функция была вызвана, все поставщики, зарегистрированные с помощью RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) методов или RegisterColumnEncryptionKeyStoreProvidersOnConnection(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) , будут игнорироваться. Эту функцию можно вызывать несколько раз. Это выполняет неглубокое копирование словаря, чтобы приложение не могло изменить настраиваемый список поставщиков после его настройки.

ResetCommandTimeout()

Восстанавливает значение по умолчанию свойства CommandTimeout.

События

StatementCompleted

Генерируется по завершении выполнения инструкции Transact-SQL.

Явные реализации интерфейса

ICloneable.Clone()

Представляет инструкцию Transact-SQL или хранимую процедуру, выполняемую над базой данных SQL Server. Этот класс не наследуется.

Применяется к