Freigeben über


SqlCommand Klasse

Definition

Stellt eine Transact-SQL-Anweisung oder eine gespeicherte Prozedur dar, die in einer 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 werden ein SqlConnection, ein SqlCommandund ein SqlDataReadererstellt. Im Beispiel werden die Daten gelesen und in die Konsole geschrieben. Schließlich schließt das Beispiel die SqlDataReader und dann, SqlConnection während es die Using Codeblöcke beendet.

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

Im folgenden Beispiel wird gezeigt, wie verschiedene Typen von SqlCommand-Objekten erstellt und ausgeführt werden.

Zunächst 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 führen Sie als Nächstes Folgendes aus:

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 von SqlCommand erstellt wird, werden die Lese-/Schreibeigenschaften auf ihre Anfangswerte festgelegt. Eine Liste dieser Werte finden Sie im SqlCommand Konstruktor.

SqlCommandbietet die folgenden Methoden zum Ausführen von Befehlen in einer SQL Server Datenbank:

Element BESCHREIBUNG
BeginExecuteNonQuery Initiiert die asynchrone Ausführung der Transact-SQL-Anweisung oder der gespeicherten Prozedur, die von dieser SqlCommandbeschrieben wird, und führt in der Regel Befehle wie INSERT-, DELETE-, UPDATE- und SET-Anweisungen aus. Jeder Aufruf von BeginExecuteNonQuery muss 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 der gespeicherten Prozedur, die hier SqlCommand beschrieben wird, und ruft eine oder mehrere Resultsets vom Server ab. Jeder Aufruf von BeginExecuteReader muss 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 der gespeicherten Prozedur, die durch diese SqlCommand beschrieben ist. Jeder Aufruf von BeginExecuteXmlReader muss mit einem Aufruf von EndExecuteXmlReadergekoppelt werden, der den Vorgang in der Regel in einem separaten Thread beendet und ein XmlReader -Objekt zurückgibt.
ExecuteReader Führt Befehle aus, die Zeilen zurückgeben. Ruft Befehle mit der gespeicherten Transact-SQL-Systemprozedur sp_executesql auf, ExecuteReader um die Leistung zu erhöhen. Daher haben Sie möglicherweise nicht die gewünschte Auswirkung, ExecuteReader wenn sie zum Ausführen von Befehlen wie Transact-SQL SET-Anweisungen verwendet wird.
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 CommandText an Connection und erstellt ein XmlReader-Objekt.

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

Wenn ein SqlException von der Methode generiert wird, die ein SqlCommandausführt, bleibt geöffnet SqlConnection , wenn der Schweregrad 19 oder weniger beträgt. Wenn der Schweregrad 20 oder höher ist, schließt der Server normalerweise den SqlConnection. Die Benutzer können die Verbindung aber erneut öffnen und fortfahren.

Hinweis

Namenlose Parameter, auch ordinal genannt, werden vom .NET Framework-Datenanbieter für SQL Server nicht unterstützt.

Konstruktoren

SqlCommand()

Initialisiert eine neue Instanz der SqlCommand-Klasse.

SqlCommand(String)

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

SqlCommand(String, SqlConnection)

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

SqlCommand(String, SqlConnection, SqlTransaction)

Initialisiert eine neue Instanz der SqlCommand -Klasse mit dem Text der Abfrage, einem SqlConnection und dem SqlTransaction .

SqlCommand(String, SqlConnection, SqlTransaction, SqlCommandColumnEncryptionSetting)

Initialisiert eine neue Instanz der SqlCommand-Klasse mit dem angegebenen Befehlstext sowie mit der angegebenen Verbindung, Transaktion und Verschlüsselungseinstellung.

Eigenschaften

ColumnEncryptionSetting

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

CommandText

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

CommandTimeout

Ruft die Zeit (in Sekunden) ab, die gewartet werden soll, bis der Versuch einer Befehlsausführung beendet und ein Fehler generiert wird, oder legt diese fest. Der Standardwert ist 30 Sekunden.

CommandType

Ruft einen Wert ab, der angibt, wie die CommandText-Eigenschaft interpretiert werden soll, oder legt diesen Wert fest.

Connection

Ruft die ab, die SqlConnection von dieser Instanz des verwendet wird, oder legt diesen SqlCommand fest.

DesignTimeVisible

Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, ob das Befehlsobjekt in einem Steuerelement für Windows Form-Designer sichtbar sein soll.

EnableOptimizedParameterBinding

Ruft einen Wert ab, der angibt, ob das Befehlsobjekt die Parameterleistung optimieren soll, indem beim Übermitteln des Befehls an den SQL Server die Anweisungen output und InputOutput deaktiviert werden, oder legt diesen fest.

Notification

Ruft einen Wert ab, der das SqlNotificationRequest-Objekt zu diesem Befehl angibt, oder legt diesen Wert fest.

NotificationAutoEnlist

Ruft einen Wert ab, der angibt, ob die Anwendung automatisch Abfragebenachrichtigungen von einem allgemeinen SqlDependency-Objekt erhalten soll, oder legt diesen fest.

Parameters

Ruft die SqlParameterCollection ab.

RetryLogicProvider

Ruft einen Wert ab, der das SqlRetryLogicBaseProvider-Objekt zu diesem Befehl angibt, oder legt diesen Wert fest.

Transaction

Ruft die SqlTransaction ab, in der der SqlCommand ausgeführt wird, bzw. legt diese fest.

UpdatedRowSource

Ruft die Methode ab bzw. legt sie fest, mit der Befehlsergebnisse auf DataRow angewendet werden, wenn sie von der Update-Methode von DbDataAdapter verwendet werden.

Methoden

BeginExecuteNonQuery()

Initiiert die asynchrone Ausführung der Transact-SQL-Anweisung oder gespeicherten Prozedur, die in diesem SqlCommand beschrieben wird.

BeginExecuteNonQuery(AsyncCallback, Object)

Initiiert die asynchrone Ausführung der Transact-SQL-Anweisung oder der gespeicherten Prozedur, die von diesem SqlCommand beschrieben wird, unter Berücksichtigung einer Rückrufprozedur und Zustandsinformationen.

BeginExecuteReader()

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

BeginExecuteReader(AsyncCallback, Object)

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

BeginExecuteReader(AsyncCallback, Object, CommandBehavior)

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

BeginExecuteReader(CommandBehavior)

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

BeginExecuteXmlReader()

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

BeginExecuteXmlReader(AsyncCallback, Object)

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

Cancel()

Versucht, die Ausführung eines SqlCommand abzubrechen.

Clone()

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

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 Timeout des Befehls abläuft. Ausnahmen werden über das zurückgegebene Aufgabenobjekt gemeldet.

ExecuteReader()

Sendet die CommandText an die Connection und erstellt ein SqlDataReader .

ExecuteReader(CommandBehavior)

Sendet den CommandText an und Connection erstellt einen SqlDataReader mit einem der CommandBehavior Werte.

ExecuteReaderAsync()

Eine asynchrone Version von ExecuteReader() , die an die ConnectionCommandText sendet und eine SqlDataReader erstellt. Ausnahmen werden über das zurückgegebene Aufgabenobjekt gemeldet.

ExecuteReaderAsync(CancellationToken)

Eine asynchrone Version von ExecuteReader() , die an die ConnectionCommandText sendet und eine SqlDataReader erstellt.

Das Abbruchtoken kann verwendet werden, um anzufordern, dass der Vorgang abgebrochen wird, bevor das Timeout des Befehls abläuft. Ausnahmen werden über das zurückgegebene Aufgabenobjekt gemeldet.

ExecuteReaderAsync(CommandBehavior)

Eine asynchrone Version von ExecuteReader(CommandBehavior) , die den CommandText an Connection sendet und erstellt SqlDataReader . Ausnahmen werden über das zurückgegebene Aufgabenobjekt gemeldet.

ExecuteReaderAsync(CommandBehavior, CancellationToken)

Eine asynchrone Version von ExecuteReader(CommandBehavior) , die an CommandText die Connection sendet und ein SqlDataReader Abbruchtoken erstellt, um anzufordern, dass der Vorgang abgebrochen wird, bevor das Befehlstimeout verstrichen ist. Ausnahmen werden über das zurückgegebene Aufgabenobjekt gemeldet.

ExecuteScalar()

Führt die Abfrage aus und gibt die erste Spalte der ersten Zeile in dem von der Abfrage zurückgegebenen Resultset zurück. Weitere 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 Resultset zurückgibt, die von der Abfrage zurückgegeben wird. Weitere Spalten oder Zeilen werden ignoriert.

Das Abbruchtoken kann verwendet werden, um anzufordern, dass der Vorgang abgebrochen wird, bevor das Timeout des Befehls abläuft. Ausnahmen werden über das zurückgegebene Aufgabenobjekt gemeldet.

ExecuteXmlReader()

Sendet CommandText an Connection und erstellt ein XmlReader-Objekt.

ExecuteXmlReaderAsync()

Eine asynchrone Version von ExecuteXmlReader() , die an das ConnectionCommandText sendet und ein XmlReader -Objekt erstellt.

Ausnahmen werden über das zurückgegebene Aufgabenobjekt gemeldet.

ExecuteXmlReaderAsync(CancellationToken)

Eine asynchrone Version von ExecuteXmlReader() , die an das ConnectionCommandText sendet und ein XmlReader -Objekt erstellt.

Das Abbruchtoken kann verwendet werden, um anzufordern, dass der Vorgang abgebrochen wird, bevor das Timeout des Befehls abläuft. Ausnahmen werden über das zurückgegebene Aufgabenobjekt gemeldet.

Prepare()

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

RegisterColumnEncryptionKeyStoreProvidersOnCommand(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>)

Registriert die Verschlüsselungsschlüsselspeicheranbieter in der SqlCommand -Instanz. Wenn diese Funktion aufgerufen wurde, werden alle Anbieter ignoriert, die mit den RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) Methoden oder RegisterColumnEncryptionKeyStoreProvidersOnConnection(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) registriert wurden. Diese Funktion kann mehrmals aufgerufen werden. Dadurch wird das Wörterbuch flach kopiert, sodass die App die Liste der benutzerdefinierten Anbieter nicht ändern kann, nachdem sie festgelegt wurde.

ResetCommandTimeout()

Setzt die CommandTimeout-Eigenschaft auf den Standardwert zurück.

Ereignisse

StatementCompleted

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

Explizite Schnittstellenimplementierungen

ICloneable.Clone()

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

Gilt für: