SqlCommand Klasse

Definition

Stellt eine Transact-SQL -Anweisung oder gespeicherte Prozedur dar, die für eine SQL Server-Datenbank ausgeführt werden soll. Diese Klasse kann nicht vererbt werden.

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
Vererbung
SqlCommand
Implementiert

Beispiele

Im folgenden Beispiel wird ein SqlConnection, a SqlCommandund a SqlDataReader. Im Beispiel werden die Daten gelesen und in die Konsole geschrieben. Schließlich wird das Beispiel geschlossen SqlDataReader und dann beendet SqlConnection , während er die Using Codeblöcke verlässt.

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

Das folgende Beispiel zeigt, wie verschiedene Typen von SqlCommand-Objekten erstellt und ausgeführt werden.

Zuerst müssen Sie die Beispieldatenbank erstellen, indem Sie das folgende Skript ausführen:

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

Kompilieren und ausführen Sie als Nächstes Folgendes:

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

Hinweise

Wenn eine Instanz erstellt SqlCommand wird, werden die Lese-/Schreibeigenschaften auf ihre Anfangswerte festgelegt. Eine Liste dieser Werte finden Sie im SqlCommand Konstruktor.

SqlCommand bietet die folgenden Methoden zum Ausführen von Befehlen in einer SQL Server-Datenbank:

Element Description
BeginExecuteNonQuery Initiiert die asynchrone Ausführung der Transact-SQL-Anweisung oder gespeicherten Prozedur, die von diesem SqlCommandbeschrieben wird, in der Regel Ausführen von Befehlen wie INSERT, DELETE, UPDATE und SET-Anweisungen. Jeder Aufruf muss BeginExecuteNonQuery mit einem Aufruf gekoppelt werden, der EndExecuteNonQuery den Vorgang beendet, in der Regel in einem separaten Thread.
BeginExecuteReader Initiiert die asynchrone Ausführung der Transact-SQL-Anweisung oder gespeicherten Prozedur, die von diesem SqlCommand beschrieben wird, und ruft einen oder mehrere Resultsets vom Server ab. Jeder Aufruf muss BeginExecuteReader mit einem Aufruf gekoppelt werden, der EndExecuteReader den Vorgang beendet, in der Regel in einem separaten Thread.
BeginExecuteXmlReader Initiiert die asynchrone Ausführung der Transact-SQL -Anweisung oder gespeicherten Prozedur, die von diesem SqlCommandbeschrieben wird. Jeder Aufruf muss BeginExecuteXmlReader mit einem Aufruf EndExecuteXmlReadergekoppelt werden, der den Vorgang beendet, in der Regel in einem separaten Thread, und gibt ein XmlReader Objekt zurück.
ExecuteReader Führt Befehle aus, die Zeilen zurückgeben. Rufen Sie befehle mithilfe der gespeicherten Transact-SQL ExecuteReader systemgespeicherten Prozedur auf, sp_executesql um eine höhere Leistung zu erzielen. Daher hat dies möglicherweise nicht den Gewünschten Effekt, ExecuteReader wenn Sie Befehle wie Transact-SQL SET-Anweisungen ausführen möchten.
ExecuteNonQuery Führt Befehle wie Transact-SQL INSERT-, DELETE-, UPDATE- und SET-Anweisungen aus.
ExecuteScalar Ruft einen einzelnen Wert (z. B. einen Aggregatwert) aus einer Datenbank ab.
ExecuteXmlReader Sendet das CommandText Objekt an das Connection Objekt und erstellt es XmlReader .

Sie können die CommandText Eigenschaft zurücksetzen und das SqlCommand Objekt wiederverwenden. Sie müssen den SqlDataReader Befehl jedoch schließen, bevor Sie einen neuen oder vorherigen Befehl ausführen können.

Wenn eine SqlException von der Methode generiert wird, die eine SqlCommandausführt, bleibt die SqlConnection geöffnet, wenn der Schweregrad 19 oder weniger beträgt. Wenn der Schweregrad 20 oder höher ist, schließt SqlConnectionder Server die . Der Benutzer kann die Verbindung jedoch erneut öffnen und fortfahren.

Hinweis

Nameless, auch als Ordinal bezeichnet, Parameter werden vom .NET Framework-Datenanbieter für SQL Server nicht unterstützt.

Konstruktoren

Name Beschreibung
SqlCommand()

Initialisiert eine neue Instanz der SqlCommand-Klasse.

SqlCommand(String, SqlConnection, SqlTransaction, SqlCommandColumnEncryptionSetting)

Initialisiert eine neue Instanz der SqlCommand Klasse mit angegebenem Befehlstext, Verbindung, Transaktion und Verschlüsselungseinstellung.

SqlCommand(String, SqlConnection, SqlTransaction)

Initialisiert eine neue Instanz der SqlCommand Klasse mit dem Text der Abfrage, a SqlConnectionund der SqlTransaction.

SqlCommand(String, SqlConnection)

Initialisiert eine neue Instanz der SqlCommand Klasse mit dem Text der Abfrage und einer SqlConnection.

SqlCommand(String)

Initialisiert eine neue Instanz der SqlCommand Klasse mit dem Text der Abfrage.

Eigenschaften

Name Beschreibung
ColumnEncryptionSetting

Ruft die Spaltenverschlüsselungseinstellung für diesen Befehl ab.

CommandText

Ruft die Transact-SQL-Anweisung, den Tabellennamen oder die gespeicherte Prozedur ab, die an der Datenquelle ausgeführt werden soll, oder legt diese fest.

CommandTimeout

Ruft die Wartezeit (in Sekunden) ab, bevor der Versuch, einen Befehl auszuführen und einen Fehler zu generieren, beendet wird, oder legt diese fest. Der Standardwert ist 30 Sekunden.

CommandType

Dient zum Abrufen oder Festlegen eines Werts, der angibt, wie die CommandText Eigenschaft interpretiert werden soll.

Connection

Dient zum Abrufen oder Festlegen der SqlConnection von dieser Instanz der SqlCommand.

DesignTimeVisible

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob das Befehlsobjekt in einem Windows Form Designer -Steuerelement sichtbar sein soll.

EnableOptimizedParameterBinding

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob das Befehlsobjekt die Parameterleistung optimieren soll, indem Ausgabe- und InputOutput-Wegbeschreibungen deaktiviert werden, wenn der Befehl an die SQL Server übermittelt wird.
Diese Option wird nur verwendet, wenn sie CommandTypeText andernfalls ignoriert wird.

Notification

Dient zum Abrufen oder Festlegen eines Werts, der das SqlNotificationRequest an diesen Befehl gebundene Objekt angibt.

NotificationAutoEnlist

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Anwendung automatisch Abfragebenachrichtigungen von einem allgemeinen SqlDependency Objekt empfangen soll.

Parameters

Ruft SqlParameterCollection ab.

RetryLogicProvider

Dient zum Abrufen oder Festlegen eines Werts, der das SqlRetryLogicBaseProvider an diesen Befehl gebundene Objekt angibt.

Transaction

Dient zum Abrufen oder Festlegen des SqlTransaction Werts, in dem die SqlCommand Ausführung ausgeführt wird.

UpdatedRowSource

Ruft ab oder legt fest, wie Befehlsergebnisse angewendet DataRow werden, wenn von der Update Methode der DbDataAdapter.

Methoden

Name Beschreibung
BeginExecuteNonQuery()

Initiiert die asynchrone Ausführung der Transact-SQL -Anweisung oder gespeicherten Prozedur, die von diesem SqlCommandbeschrieben wird.

BeginExecuteNonQuery(AsyncCallback, Object)

Initiiert die asynchrone Ausführung der Transact-SQL -Anweisung oder gespeicherten Prozedur, die von diesem SqlCommandbeschrieben wird , vorausgesetzt, eine Rückrufprozedur und Statusinformationen.

BeginExecuteReader()

Initiiert die asynchrone Ausführung der Transact-SQL-Anweisung oder gespeicherten Prozedur, die von diesem SqlCommandbeschrieben wird, und ruft ein oder mehrere Resultsets vom Server ab.

BeginExecuteReader(AsyncCallback, Object, CommandBehavior)

Initiiert die asynchrone Ausführung der Transact-SQL-Anweisung oder gespeicherten Prozedur, die von diesem SqlCommand beschrieben wird, unter Verwendung einer der CommandBehavior werte und abrufen eines oder mehrerer Resultsets vom Server, wenn eine Rückrufprozedur und Statusinformationen angegeben sind.

BeginExecuteReader(AsyncCallback, Object)

Initiiert die asynchrone Ausführung der Transact-SQL-Anweisung oder gespeicherten Prozedur, die von diesem SqlCommand beschrieben wird, und gibt Ergebnisse als XmlReader Objekt mithilfe einer Rückrufprozedur zurück.

BeginExecuteReader(CommandBehavior)

Initiiert die asynchrone Ausführung der Transact-SQL -Anweisung oder gespeicherten Prozedur, die mithilfe SqlCommand eines der CommandBehavior Werte beschrieben wird.

BeginExecuteXmlReader()

Initiiert die asynchrone Ausführung der Transact-SQL -Anweisung oder gespeicherten Prozedur, die von diesem SqlCommand beschrieben wird, und gibt Ergebnisse als XmlReader Objekt zurück.

BeginExecuteXmlReader(AsyncCallback, Object)

Initiiert die asynchrone Ausführung der Transact-SQL-Anweisung oder gespeicherten Prozedur, die von diesem SqlCommand beschrieben wird, und gibt Ergebnisse als XmlReader Objekt mithilfe einer Rückrufprozedur zurück.

Cancel()

Versucht, die Ausführung einer .SqlCommand

Clone()

Erstellt ein neues SqlCommand Objekt, das eine Kopie der aktuellen Instanz ist.

CreateParameter()

Erstellt eine neue Instanz eines SqlParameter Objekts.

EndExecuteNonQuery(IAsyncResult)

Beendet die asynchrone Ausführung einer Transact-SQL-Anweisung.

EndExecuteReader(IAsyncResult)

Beendet die asynchrone Ausführung einer Transact-SQL-Anweisung und gibt die angeforderte SqlDataReader zurück.

EndExecuteXmlReader(IAsyncResult)

Beendet die asynchrone Ausführung einer Transact-SQL-Anweisung und gibt die angeforderten Daten als XML zurück.

ExecuteNonQuery()

Führt eine Transact-SQL-Anweisung für die Verbindung aus und gibt die Anzahl der betroffenen Zeilen zurück.

ExecuteNonQueryAsync(CancellationToken)

Eine asynchrone Version von ExecuteNonQuery(), die eine Transact-SQL-Anweisung für die Verbindung ausführt und die Anzahl der betroffenen Zeilen zurückgibt. Das Abbruchtoken kann verwendet werden, um anzufordern, dass der Vorgang abgebrochen wird, bevor das Befehlstimeout verstrichen ist. Ausnahmen werden über das zurückgegebene Task-Objekt gemeldet.

ExecuteReader()

Sendet die CommandText an und Connection erstellt eine SqlDataReader.

ExecuteReader(CommandBehavior)

Sendet den CommandText Wert an das ConnectionUnd erstellt einen SqlDataReader mit einem der CommandBehavior Werte.

ExecuteReaderAsync()

Eine asynchrone Version von ExecuteReader(), die die CommandText an die Connection und erstellt eine SqlDataReader. Ausnahmen werden über das zurückgegebene Task-Objekt gemeldet.

ExecuteReaderAsync(CancellationToken)

Eine asynchrone Version von ExecuteReader(), die die CommandText an die Connection und erstellt eine SqlDataReader. Das Abbruchtoken kann verwendet werden, um anzufordern, dass der Vorgang abgebrochen wird, bevor das Befehlstimeout verstrichen ist. Ausnahmen werden über das zurückgegebene Task-Objekt gemeldet.

ExecuteReaderAsync(CommandBehavior, CancellationToken)

Eine asynchrone Version von ExecuteReader(CommandBehavior), die die CommandText Ansage Connectionsendet und erstellt ein SqlDataReader Abbruchtoken kann verwendet werden, um anzufordern, dass der Vorgang abgebrochen wird, bevor das Befehlstimeout verstrichen ist. Ausnahmen werden über das zurückgegebene Task-Objekt gemeldet.

ExecuteReaderAsync(CommandBehavior)

Eine asynchrone Version von ExecuteReader(CommandBehavior), die die CommandText an die Connection, und erstellt eine SqlDataReader. Ausnahmen werden über das zurückgegebene Task-Objekt gemeldet.

ExecuteScalar()

Führt die Abfrage aus und gibt die erste Spalte der ersten Zeile im Resultset zurück, die von der Abfrage zurückgegeben wird. Zusätzliche Spalten oder Zeilen werden ignoriert.

ExecuteScalarAsync(CancellationToken)

Eine asynchrone Version von ExecuteScalar(), die die Abfrage asynchron ausführt und die erste Spalte der ersten Zeile im Von der Abfrage zurückgegebenen Resultset zurückgibt. Zusätzliche Spalten oder Zeilen werden ignoriert. Das Abbruchtoken kann verwendet werden, um anzufordern, dass der Vorgang abgebrochen wird, bevor das Befehlstimeout verstrichen ist. Ausnahmen werden über das zurückgegebene Task-Objekt gemeldet.

ExecuteXmlReader()

Sendet das CommandText Objekt an das Connection Objekt und erstellt es XmlReader .

ExecuteXmlReaderAsync()

Eine asynchrone Version von ExecuteXmlReader(), die das CommandText Objekt sendet Connection und erstellt ein XmlReader Objekt. Ausnahmen werden über das zurückgegebene Task-Objekt gemeldet.

ExecuteXmlReaderAsync(CancellationToken)

Eine asynchrone Version von ExecuteXmlReader(), die das CommandText Objekt sendet Connection und erstellt ein XmlReader Objekt. Das Abbruchtoken kann verwendet werden, um anzufordern, dass der Vorgang abgebrochen wird, bevor das Befehlstimeout verstrichen ist. Ausnahmen werden über das zurückgegebene Task-Objekt gemeldet.

Prepare()

Erstellt eine vorbereitete Version des Befehls in einer Instanz von SQL Server.

RegisterColumnEncryptionKeyStoreProvidersOnCommand(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>)

Registriert die Anbieter des Verschlüsselungsschlüsselspeichers für die SqlCommand Instanz. Wenn diese Funktion aufgerufen wurde, werden alle Anbieter, die mit den RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) Methoden RegisterColumnEncryptionKeyStoreProvidersOnConnection(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) registriert sind, ignoriert. Diese Funktion kann mehrmals aufgerufen werden. Dadurch wird das Kopieren des Wörterbuchs flach ausgeführt, sodass die App die Liste der benutzerdefinierten Anbieter nicht mehr ändern kann, nachdem sie festgelegt wurde.

ResetCommandTimeout()

Setzt die CommandTimeout Eigenschaft auf den Standardwert zurück.

Ereignisse

Name Beschreibung
StatementCompleted

Tritt auf, wenn die Ausführung einer Transact-SQL-Anweisung abgeschlossen ist.

Explizite Schnittstellenimplementierungen

Name Beschreibung
ICloneable.Clone()

Stellt eine Transact-SQL -Anweisung oder gespeicherte Prozedur dar, die für eine SQL Server-Datenbank ausgeführt werden soll. Diese Klasse kann nicht vererbt werden.

Gilt für: