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. |
| Notification |
Возвращает или задает значение, указывающее объект, привязанный SqlNotificationRequest к этой команде. |
| NotificationAutoEnlist |
Возвращает или задает значение, указывающее, должно ли приложение автоматически получать уведомления о запросах из общего SqlDependency объекта. |
| Parameters |
Возвращает SqlParameterCollection. |
| RetryLogicProvider |
Возвращает или задает значение, указывающее объект, привязанный SqlRetryLogicBaseProvider к этой команде. |
| Transaction |
Возвращает или задает объект SqlTransaction , SqlCommand в пределах которого выполняется. |
| UpdatedRowSource |
Возвращает или задает способ применения результатов команды к DataRow методу |
Методы
| Имя | Описание |
|---|---|
| BeginExecuteNonQuery() |
Инициирует асинхронное выполнение инструкции Transact-SQL или хранимой процедуры, описанной в этом SqlCommandразделе. |
| BeginExecuteNonQuery(AsyncCallback, Object) |
Инициирует асинхронное выполнение инструкции Transact-SQL или хранимой процедуры, описанной в этой SqlCommandстатье, с учетом процедуры обратного вызова и сведений о состоянии. |
| BeginExecuteReader() |
Инициирует асинхронное выполнение инструкции Transact-SQL или хранимой процедуры, описанной в этой SqlCommandстатье, и извлекает один или несколько результирующих наборов с сервера. |
| BeginExecuteReader(AsyncCallback, Object, CommandBehavior) |
Инициирует асинхронное выполнение инструкции Transact-SQL или хранимой процедуры, описываемой этим SqlCommand, с помощью одного из них
|
| 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. Этот класс не может быть унаследован. |