SqlCommand Klasa

Definicja

Reprezentuje instrukcję Transact-SQL lub procedurę składowaną do wykonania względem bazy danych SQL Server. Tej klasy nie można dziedziczyć.

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

Poniższy przykład tworzy obiekt SqlConnection, , 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 konstruktor SqlCommand.

SqlCommand oferuje następujące metody wykonywania poleceń w bazie danych programu SQL Server:

Pozycja Description
BeginExecuteNonQuery Inicjuje asynchroniczne wykonywanie instrukcji Transact-SQL lub procedury składowanej opisanej w tym SqlCommandobiekcie , zazwyczaj wykonuje polecenia, takie jak INSERT, DELETE, UPDATE i SET. Każde wywołanie BeginExecuteNonQuery musi 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 BeginExecuteReader musi 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 przez ten element SqlCommand. Każde wywołanie BeginExecuteXmlReader musi być sparowane z wywołaniem metody EndExecuteXmlReader, które kończy operację, zazwyczaj w osobnym wątku i zwraca XmlReader obiekt.
ExecuteReader Wykonuje polecenia zwracające wiersze. Aby zwiększyć wydajność, 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 instrukcje Transact-SQL INSERT, DELETE, UPDATE i SET.
ExecuteScalar Pobiera pojedynczą wartość (na przykład wartość agregowaną) z bazy danych.
ExecuteXmlReader Wysyła element CommandText do obiektu Connection i tworzy XmlReader obiekt .

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

SqlException Jeśli element jest generowany przez metodę wykonującą SqlCommandelement , 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 SqlConnectionwartość . Użytkownik może jednak ponownie otworzyć połączenie i kontynuować.

Uwaga / Notatka

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

Konstruktory

Nazwa Opis
SqlCommand()

Inicjuje nowe wystąpienie klasy SqlCommand.

SqlCommand(String, SqlConnection, SqlTransaction, SqlCommandColumnEncryptionSetting)

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

SqlCommand(String, SqlConnection, SqlTransaction)

Inicjuje nowe wystąpienie SqlCommand klasy przy użyciu tekstu zapytania , i SqlConnectionSqlTransaction.

SqlCommand(String, SqlConnection)

Inicjuje nowe wystąpienie SqlCommand klasy przy użyciu tekstu zapytania i .SqlConnection

SqlCommand(String)

Inicjuje nowe wystąpienie SqlCommand klasy tekstem zapytania.

Właściwości

Nazwa Opis
ColumnEncryptionSetting

Pobiera ustawienie szyfrowania kolumn dla tego polecenia.

CommandText

Pobiera lub ustawia instrukcję 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.
Ta opcja jest używana tylko wtedy, gdy CommandType element jest Text w przeciwnym razie ignorowany.

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 odbierać powiadomienia o zapytaniach z wspólnego SqlDependency obiektu.

Parameters

Pobiera klasę SqlParameterCollection.

RetryLogicProvider

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

Transaction

Pobiera lub ustawia element SqlTransaction , w którym SqlCommand jest wykonywany.

UpdatedRowSource

Pobiera lub ustawia sposób stosowania wyników poleceń do DataRow metody , gdy są używane przez Update metodę DbDataAdapter.

Metody

Nazwa Opis
BeginExecuteNonQuery()

Inicjuje asynchroniczne wykonywanie instrukcji Transact-SQL lub procedury składowanej opisanej przez ten element SqlCommand.

BeginExecuteNonQuery(AsyncCallback, Object)

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

BeginExecuteReader()

Inicjuje asynchroniczne wykonywanie instrukcji Transact-SQL lub procedury składowanej opisanej przez ten SqlCommandobiekt i pobiera jeden lub więcej zestawów wyników z serwera.

BeginExecuteReader(AsyncCallback, Object, CommandBehavior)

Inicjuje asynchroniczne wykonywanie instrukcji Transact-SQL lub procedury składowanej opisanej w tym SqlCommand przy użyciu jednej z instrukcji CommandBehavior 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(AsyncCallback, Object)

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

BeginExecuteReader(CommandBehavior)

Inicjuje asynchroniczne wykonywanie instrukcji Transact-SQL lub procedury składowanej opisanej za pomocą SqlCommand jednej z CommandBehavior wartości.

BeginExecuteXmlReader()

Inicjuje asynchroniczne wykonywanie instrukcji Transact-SQL lub procedury składowanej opisanej przez tę metodę SqlCommandXmlReader i zwraca wyniki jako obiekt.

BeginExecuteXmlReader(AsyncCallback, Object)

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

Cancel()

Próbuje anulować wykonanie obiektu 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 Transact-SQL.

EndExecuteReader(IAsyncResult)

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

EndExecuteXmlReader(IAsyncResult)

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

ExecuteNonQuery()

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

ExecuteNonQueryAsync(CancellationToken)

Asynchroniczna wersja ExecuteNonQuery()programu , która wykonuje instrukcję Transact-SQL względem połączenia i zwraca liczbę wierszy, których dotyczy problem. Token anulowania może służyć do żądania porzucenia operacji 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 elementu Connectioni tworzy obiekt SqlDataReader przy użyciu jednej z CommandBehavior wartości.

ExecuteReaderAsync()

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

ExecuteReaderAsync(CancellationToken)

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

ExecuteReaderAsync(CommandBehavior, CancellationToken)

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

ExecuteReaderAsync(CommandBehavior)

Asynchroniczna wersja ExecuteReader(CommandBehavior)elementu , która wysyła CommandText element do Connectionelementu i tworzy element SqlDataReader. 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 ExecuteScalar()elementu , 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 porzucenia operacji przed upływem limitu czasu polecenia. Wyjątki będą zgłaszane za pośrednictwem zwróconego obiektu Zadania.

ExecuteXmlReader()

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

ExecuteXmlReaderAsync()

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

ExecuteXmlReaderAsync(CancellationToken)

Asynchroniczna wersja ExecuteXmlReader()elementu , która wysyła CommandText element do Connection obiektu i tworzy XmlReader obiekt . Token anulowania może służyć do żądania porzucenia operacji 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 programu 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 jej ustawieniu.

ResetCommandTimeout()

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

Zdarzenia

Nazwa Opis
StatementCompleted

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

Jawne implementacje interfejsu

Nazwa Opis
ICloneable.Clone()

Reprezentuje instrukcję Transact-SQL lub procedurę składowaną do wykonania względem bazy danych SQL Server. Tej klasy nie można dziedziczyć.

Dotyczy