Udostępnij za pośrednictwem


SqlCommand Klasa

Definicja

Reprezentuje instrukcję Języka Transact-SQL lub procedurę składowaną do wykonania względem bazy danych SQL Server. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
SqlCommand
Implementuje

Przykłady

W poniższym przykładzie jest tworzony element SqlConnection, a SqlCommandi SqlDataReader. Przykład odczytuje dane, zapisuj je w konsoli. Na koniec przykład zamyka bloki SqlDataReader kodu, a następnie SqlConnection powoduje zamknięcie Using bloków kodu.

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]));
                    }
                }
            }
        }

W poniższym przykładzie pokazano, jak utworzyć i wykonać różne typy obiektów SqlCommand.

Najpierw należy utworzyć przykładową bazę danych, wykonując następujący skrypt:

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

Następnie skompiluj i wykonaj następujące czynności:

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");
    }
}

Uwagi

Po utworzeniu SqlCommand wystąpienia właściwości odczytu/zapisu są ustawione na ich wartości początkowe. Aby uzyskać listę tych wartości, zobacz SqlCommand konstruktor.

SqlCommandfunkcje następujących metod wykonywania poleceń w bazie danych SQL Server:

Element Opis
BeginExecuteNonQuery Inicjuje asynchroniczne wykonywanie instrukcji Transact-SQL lub procedury składowanej opisanej w tym obiekcie SqlCommand, zazwyczaj wykonując polecenia, takie jak INSERT, DELETE, UPDATE i SET. Każde wywołanie musi BeginExecuteNonQuery być sparowane z wywołaniem, do EndExecuteNonQuery którego kończy operację, zazwyczaj w osobnym wątku.
BeginExecuteReader Inicjuje asynchroniczne wykonywanie instrukcji Transact-SQL lub procedury składowanej opisanej w tym temacie SqlCommand i pobiera jeden lub więcej zestawów wyników z serwera. Każde wywołanie musi BeginExecuteReader być sparowane z wywołaniem, do EndExecuteReader którego kończy operację, zazwyczaj w osobnym wątku.
BeginExecuteXmlReader Inicjuje asynchroniczne wykonywanie instrukcji Transact-SQL lub procedury składowanej opisanej w tym elemecie SqlCommand. Każde wywołanie musi BeginExecuteXmlReader być sparowane z wywołaniem metody EndExecuteXmlReader, która kończy operację, zazwyczaj w osobnym wątku i zwraca XmlReader obiekt.
ExecuteReader Wykonuje polecenia zwracające wiersze. W celu zwiększenia wydajności ExecuteReader wywołuje polecenia przy użyciu procedury składowanej systemu Transact-SQL sp_executesql . ExecuteReader W związku z tym może nie mieć wpływu, który ma być używany do wykonywania poleceń, takich jak instrukcje Transact-SQL SET.
ExecuteNonQuery Wykonuje polecenia, takie jak transact-SQL INSERT, DELETE, UPDATE i SET instrukcji.
ExecuteScalar Pobiera pojedynczą wartość (na przykład wartość agregowaną) z bazy danych.
ExecuteXmlReader Wysyła obiekt CommandText do obiektu Connection i tworzy XmlReader go.

Można zresetować CommandText właściwość i ponownie użyć SqlCommand obiektu. Należy jednak zamknąć polecenie SqlDataReader przed wykonaniem nowego lub poprzedniego polecenia.

SqlException Jeśli element jest generowany przez metodę wykonującą metodę SqlCommand, SqlConnection pozostaje otwarty, gdy poziom ważności wynosi 19 lub mniej. Gdy poziom ważności wynosi 20 lub więcej, serwer zwykle zamyka wartość SqlConnection. Jednak użytkownik może ponownie otworzyć połączenie i kontynuować.

Uwaga

Parametry bez nazw, nazywane również porządkowe, nie są obsługiwane przez dostawcę danych .NET Framework dla SQL Server.

Konstruktory

SqlCommand()

Inicjuje nowe wystąpienie klasy SqlCommand.

SqlCommand(String)

Inicjuje SqlCommand nowe wystąpienie klasy z tekstem zapytania.

SqlCommand(String, SqlConnection)

Inicjuje SqlCommand nowe wystąpienie klasy z tekstem zapytania i .SqlConnection

SqlCommand(String, SqlConnection, SqlTransaction)

Inicjuje nowe wystąpienie SqlCommand klasy z tekstem zapytania, elementem SqlConnection , i .SqlTransaction

SqlCommand(String, SqlConnection, SqlTransaction, SqlCommandColumnEncryptionSetting)

Inicjuje SqlCommand nowe wystąpienie klasy z określonym tekstem polecenia, połączeniem, transakcją i ustawieniem szyfrowania.

Właściwości

ColumnEncryptionSetting

Pobiera ustawienie szyfrowania kolumn dla tego polecenia.

CommandText

Pobiera lub ustawia instrukcję Języka Transact-SQL, nazwę tabeli lub procedurę składowaną do wykonania w źródle danych.

CommandTimeout

Pobiera lub ustawia czas oczekiwania (w sekundach) przed zakończeniem próby wykonania polecenia i wygenerowaniem błędu. Wartość domyślna to 30 sekund.

CommandType

Pobiera lub ustawia wartość wskazującą sposób CommandText interpretowania właściwości.

Connection

Pobiera lub ustawia SqlConnection wartość używaną przez to wystąpienie klasy SqlCommand .

DesignTimeVisible

Pobiera lub ustawia wartość wskazującą, czy obiekt polecenia powinien być widoczny w kontrolce Windows Form Designer.

EnableOptimizedParameterBinding

Pobiera lub ustawia wartość wskazującą, czy obiekt polecenia powinien zoptymalizować wydajność parametrów, wyłączając wskazówki wyjściowe i InputOutput podczas przesyłania polecenia do SQL Server.

Notification

Pobiera lub ustawia wartość określającą SqlNotificationRequest obiekt powiązany z tym poleceniem.

NotificationAutoEnlist

Pobiera lub ustawia wartość wskazującą, czy aplikacja powinna automatycznie otrzymywać powiadomienia o zapytaniach z wspólnego SqlDependency obiektu.

Parameters

Pobiera element SqlParameterCollection .

RetryLogicProvider

Pobiera lub ustawia wartość określającą SqlRetryLogicBaseProvider obiekt powiązany z tym poleceniem.

Transaction

Pobiera lub ustawia SqlTransaction element, w którym SqlCommand są wykonywane.

UpdatedRowSource

Pobiera lub ustawia sposób stosowania wyników poleceń do DataRow metody Update metody DbDataAdapter.

Metody

BeginExecuteNonQuery()

Inicjuje asynchroniczne wykonywanie instrukcji Transact-SQL lub procedury składowanej opisanej w tym elemecie SqlCommand .

BeginExecuteNonQuery(AsyncCallback, Object)

Inicjuje asynchroniczne wykonywanie instrukcji Transact-SQL lub procedury składowanej opisanej w tym SqlCommand temacie, biorąc pod uwagę procedurę wywołania zwrotnego i informacje o stanie.

BeginExecuteReader()

Inicjuje asynchroniczne wykonywanie instrukcji Transact-SQL lub procedury składowanej opisanej w tym temacie SqlCommand i zwraca wyniki jako XmlReader obiekt.

BeginExecuteReader(AsyncCallback, Object)

Inicjuje asynchroniczne wykonywanie instrukcji Transact-SQL lub procedury składowanej opisanej w tym SqlCommand temacie i zwraca wyniki jako XmlReader obiekt przy użyciu procedury wywołania zwrotnego.

BeginExecuteReader(AsyncCallback, Object, CommandBehavior)

Inicjuje asynchroniczne wykonywanie instrukcji Transact-SQL lub procedury składowanej opisanej w tym SqlCommand elemecie , przy użyciu jednej z instrukcjiCommandBehavior wartości i pobieranie co najmniej jednego zestawu wyników z serwera, biorąc pod uwagę procedurę wywołania zwrotnego i informacje o stanie.

BeginExecuteReader(CommandBehavior)

Inicjuje asynchroniczne wykonywanie instrukcji Transact-SQL lub procedury składowanej opisanej CommandBehavior przy SqlCommand użyciu jednej z wartości.

BeginExecuteXmlReader()

Inicjuje asynchroniczne wykonywanie instrukcji Transact-SQL lub procedury składowanej opisanej w tym temacie SqlCommand i zwraca wyniki jako XmlReader obiekt.

BeginExecuteXmlReader(AsyncCallback, Object)

Inicjuje asynchroniczne wykonywanie instrukcji Transact-SQL lub procedury składowanej opisanej w tym SqlCommand temacie i zwraca wyniki jako XmlReader obiekt przy użyciu procedury wywołania zwrotnego.

Cancel()

Próbuje anulować wykonywanie elementu SqlCommand .

Clone()

Tworzy nowy SqlCommand obiekt, który jest kopią bieżącego wystąpienia.

CreateParameter()

Tworzy nowe wystąpienie SqlParameter obiektu.

EndExecuteNonQuery(IAsyncResult)

Kończy asynchroniczne wykonywanie instrukcji Języka Transact-SQL.

EndExecuteReader(IAsyncResult)

Kończy asynchroniczne wykonywanie instrukcji Języka Transact-SQL, zwracając żądany SqlDataReader element .

EndExecuteXmlReader(IAsyncResult)

Kończy asynchroniczne wykonywanie instrukcji Języka Transact-SQL, zwracając żądane dane jako XML.

ExecuteNonQuery()

Wykonuje instrukcję Języka Transact-SQL względem połączenia i zwraca liczbę wierszy, których dotyczy problem.

ExecuteNonQueryAsync(CancellationToken)

Asynchroniczna wersja klasy ExecuteNonQuery() , która wykonuje instrukcję Języka Transact-SQL względem połączenia i zwraca liczbę wierszy, których dotyczy problem. Token anulowania może służyć do żądania, aby operacja została porzucona przed upływem limitu czasu polecenia. Wyjątki będą zgłaszane za pośrednictwem zwróconego obiektu Zadania.

ExecuteReader()

Wysyła element CommandText do pliku Connection i tworzy element SqlDataReader .

ExecuteReader(CommandBehavior)

Wysyła element CommandText do obiektu Connection i tworzy SqlDataReader element przy użyciu jednej z CommandBehavior wartości.

ExecuteReaderAsync()

Asynchroniczna wersja elementu ExecuteReader() , która wysyła element CommandText do elementu Connection i tworzy element SqlDataReader . Wyjątki będą zgłaszane za pośrednictwem zwróconego obiektu Zadania.

ExecuteReaderAsync(CancellationToken)

Asynchroniczna wersja elementu ExecuteReader() , która wysyła element CommandText do elementu Connection i tworzy element SqlDataReader .

Token anulowania może służyć do żądania, aby operacja została porzucona przed upływem limitu czasu polecenia. Wyjątki będą zgłaszane za pośrednictwem zwróconego obiektu Zadania.

ExecuteReaderAsync(CommandBehavior)

Asynchroniczna wersja elementu ExecuteReader(CommandBehavior) , która wysyła element CommandText do Connection elementu i tworzy element SqlDataReader . Wyjątki będą zgłaszane za pośrednictwem zwróconego obiektu Zadania.

ExecuteReaderAsync(CommandBehavior, CancellationToken)

Asynchroniczna wersja elementu ExecuteReader(CommandBehavior) , która wysyła element CommandText do Connection elementu i tworzy SqlDataReader token anulowania, może służyć do żądania, aby operacja została porzucona przed upływem limitu czasu polecenia. Wyjątki będą zgłaszane za pośrednictwem zwróconego obiektu Zadania.

ExecuteScalar()

Wykonuje zapytanie i zwraca pierwszą kolumnę pierwszego wiersza w zestawie wyników zwróconym przez zapytanie. Dodatkowe kolumny lub wiersze są ignorowane.

ExecuteScalarAsync(CancellationToken)

Asynchroniczna wersja elementu ExecuteScalar() , która wykonuje zapytanie asynchronicznie i zwraca pierwszą kolumnę pierwszego wiersza w zestawie wyników zwróconym przez zapytanie. Dodatkowe kolumny lub wiersze są ignorowane.

Token anulowania może służyć do żądania, aby operacja została porzucona przed upływem limitu czasu polecenia. Wyjątki będą zgłaszane za pośrednictwem zwróconego obiektu Zadania.

ExecuteXmlReader()

Wysyła obiekt CommandText do obiektu Connection i tworzy XmlReader go.

ExecuteXmlReaderAsync()

Asynchroniczna wersja elementu ExecuteXmlReader() , która wysyła element CommandText do Connection obiektu i tworzy XmlReader obiekt.

Wyjątki będą zgłaszane za pośrednictwem zwróconego obiektu Zadania.

ExecuteXmlReaderAsync(CancellationToken)

Asynchroniczna wersja elementu ExecuteXmlReader() , która wysyła element CommandText do Connection obiektu i tworzy XmlReader obiekt.

Token anulowania może służyć do żądania, aby operacja została porzucona przed upływem limitu czasu polecenia. Wyjątki będą zgłaszane za pośrednictwem zwróconego obiektu Zadania.

Prepare()

Tworzy przygotowaną wersję polecenia w wystąpieniu SQL Server.

RegisterColumnEncryptionKeyStoreProvidersOnCommand(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>)

Rejestruje dostawców magazynu kluczy szyfrowania w wystąpieniu SqlCommand . Jeśli ta funkcja została wywołana, wszyscy dostawcy zarejestrowani przy użyciu RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) metod lub RegisterColumnEncryptionKeyStoreProvidersOnConnection(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) zostaną zignorowani. Ta funkcja może być wywoływana więcej niż raz. Powoduje to płytkie kopiowanie słownika, dzięki czemu aplikacja nie może zmienić listy dostawców niestandardowych po ustawieniu.

ResetCommandTimeout()

Resetuje właściwość do wartości domyślnej CommandTimeout .

Zdarzenia

StatementCompleted

Występuje po zakończeniu wykonywania instrukcji Języka Transact-SQL.

Jawne implementacje interfejsu

ICloneable.Clone()

Reprezentuje instrukcję Języka Transact-SQL lub procedurę składowaną do wykonania względem bazy danych SQL Server. Klasa ta nie może być dziedziczona.

Dotyczy