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
Реализации

Примеры

В следующем примере создается , a SqlConnectionSqlCommandи a SqlDataReader. Пример считывает данные, записывая его в консоль. Наконец, в примере закрывается 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:

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

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

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

Замечание

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

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

Имя Описание
SqlCommand()

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

SqlCommand(String, SqlConnection, SqlTransaction, SqlCommandColumnEncryptionSetting)

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

SqlCommand(String, SqlConnection, SqlTransaction)

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

SqlCommand(String, SqlConnection)

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

SqlCommand(String)

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

Свойства

Имя Описание
ColumnEncryptionSetting

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

CommandText

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

CommandTimeout

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

CommandType

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

Connection

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

DesignTimeVisible

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

EnableOptimizedParameterBinding

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

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статье, и извлекает один или несколько результирующих наборов с сервера.

BeginExecuteReader(AsyncCallback, Object, CommandBehavior)

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

BeginExecuteReader(AsyncCallback, Object)

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

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)

Отправляет объект в CommandText приложение и создает Connection одно из значений SqlDataReaderCommandBehavior.

ExecuteReaderAsync()

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

ExecuteReaderAsync(CancellationToken)

Асинхронная версияExecuteReader(), которая отправляет объект CommandText в и создает Connection объектSqlDataReader. Маркер отмены можно использовать для запроса на то, что операция будет прекращена до истечения времени ожидания команды. Исключения будут сообщаться с помощью возвращаемого объекта Task.

ExecuteReaderAsync(CommandBehavior, CancellationToken)

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

ExecuteReaderAsync(CommandBehavior)

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

ExecuteScalar()

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

ExecuteScalarAsync(CancellationToken)

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

ExecuteXmlReader()

Отправляет объект CommandTextConnection и создает XmlReader объект.

ExecuteXmlReaderAsync()

Асинхронная версия ExecuteXmlReader(), которая отправляет объект и создает CommandTextConnectionXmlReader объект. Исключения будут сообщаться с помощью возвращаемого объекта Task.

ExecuteXmlReaderAsync(CancellationToken)

Асинхронная версия ExecuteXmlReader(), которая отправляет объект и создает CommandTextConnectionXmlReader объект. Маркер отмены можно использовать для запроса на то, что операция будет прекращена до истечения времени ожидания команды. Исключения будут сообщаться с помощью возвращаемого объекта 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. Этот класс не может быть унаследован.

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