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 ref class SqlCommand sealed : System::Data::Common::DbCommand
public ref class SqlCommand sealed : System::ComponentModel::Component, ICloneable, IDisposable, System::Data::IDbCommand
public ref class SqlCommand sealed : System::Data::Common::DbCommand, ICloneable, IDisposable
public sealed class SqlCommand : System.Data.Common.DbCommand, ICloneable
public sealed class SqlCommand : System.Data.Common.DbCommand
public sealed class SqlCommand : System.ComponentModel.Component, ICloneable, IDisposable, System.Data.IDbCommand
public sealed class SqlCommand : System.Data.Common.DbCommand, ICloneable, IDisposable
type SqlCommand = class
    inherit DbCommand
    interface ICloneable
type SqlCommand = class
    inherit DbCommand
type SqlCommand = class
    inherit Component
    interface IDbCommand
    interface IDisposable
    interface ICloneable
type SqlCommand = class
    inherit DbCommand
    interface IDbCommand
    interface ICloneable
    interface IDisposable
Public NotInheritable Class SqlCommand
Inherits DbCommand
Implements ICloneable
Public NotInheritable Class SqlCommand
Inherits DbCommand
Public NotInheritable Class SqlCommand
Inherits Component
Implements ICloneable, IDbCommand, IDisposable
Public NotInheritable Class SqlCommand
Inherits DbCommand
Implements ICloneable, IDisposable
Vererbung
SqlCommand
Vererbung
Vererbung
Implementiert

Beispiele

Im folgenden Beispiel wird ein , a SqlConnectionSqlCommandund a SqlDataReader. Das Beispiel liest die Daten durch, schreibt sie in die Konsole. Schließlich wird das Beispiel geschlossen SqlDataReader und SqlConnection dann beendet, während die Codeblöcke beendet Using werden.

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]));
            }
        }
    }
}
Public Sub ReadOrderData(ByVal connectionString As String)
    Dim queryString As String = _
        "SELECT OrderID, CustomerID FROM dbo.Orders;"
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        connection.Open()
        Dim reader As SqlDataReader = command.ExecuteReader()
        Try
            While reader.Read()
                Console.WriteLine(String.Format("{0}, {1}", _
                    reader(0), reader(1)))
            End While
        Finally
            ' Always call Close when done reading.
            reader.Close()
        End Try
    End Using
End Sub

Das folgende Beispiel zeigt, wie unterschiedliche 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 Sie als Nächstes Folgendes, und führen Sie folgendes aus:

using System;  
using System.Data;  
using System.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;Asynchronous Processing=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.

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, im Allgemeinen Ausführen von Befehlen wie INSERT, DELETE, UPDATE und SET-Anweisungen. Jeder Aufruf muss BeginExecuteNonQuery mit einem Aufruf gekoppelt werden, mit EndExecuteNonQuery dem der Vorgang beendet wird, in der Regel auf einem separaten Thread.
BeginExecuteReader Initiiert die asynchrone Ausführung der Transact-SQL-Anweisung oder der 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, mit EndExecuteReader dem der Vorgang beendet wird, in der Regel auf 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 muss BeginExecuteXmlReader mit einem Aufruf gekoppelt werden, der EndExecuteXmlReaderden Vorgang beendet, in der Regel auf einem separaten Thread, und gibt ein XmlReader Objekt zurück.
ExecuteReader Führt Befehle aus, die Zeilen zurückgeben. Ruft Befehle für eine höhere Leistung ExecuteReader mithilfe der gespeicherten Transact-SQL-Systemprozedur sp_executesql auf. Daher hat möglicherweise nicht die Auswirkung, ExecuteReader die Sie zum Ausführen von Befehlen wie Transact-SQL SET-Anweisungen verwenden 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 CommandText an Connection und erstellt ein XmlReader-Objekt.

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

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

Hinweis

Namenlose, auch als Ordinal bezeichnete Parameter 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 einer SqlConnection.

SqlCommand(String, SqlConnection, SqlTransaction)

Initialisiert eine neue Instanz der SqlCommand-Klasse mit dem Text der Abfrage, einer SqlConnection und der 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

CanRaiseEvents

Ruft einen Wert ab, der angibt, ob die Komponente ein Ereignis auslösen kann.

(Geerbt von Component)
ColumnEncryptionSetting

Ruft die Spaltenverschlüsselungseinstellung für diesen Befehl ab oder legt sie fest.

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.

CommandType

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

Connection

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

Container

Ruft die IContainer ab, die in der Component enthalten ist.

(Geerbt von Component)
DbConnection

Ruft die von diesem DbConnection verwendete DbCommand ab oder legt diese fest.

(Geerbt von DbCommand)
DbParameterCollection

Ruft die Auflistung von DbParameter-Objekten ab.

(Geerbt von DbCommand)
DbTransaction

Ruft die DbTransaction ab, in der dieses DbCommand-Objekt ausgeführt wird, oder legt sie fest.

(Geerbt von DbCommand)
DesignMode

Ruft einen Wert ab, der angibt, ob sich Component gegenwärtig im Entwurfsmodus befindet.

(Geerbt von Component)
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.

Events

Ruft die Liste der Ereignishandler ab, die dieser Component angefügt sind.

(Geerbt von Component)
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 das SqlParameterCollection ab.

Site

Ruft den ISite von Component ab oder legt ihn fest.

(Geerbt von Component)
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 der gespeicherten Prozedur, die durch diese SqlCommand beschrieben ist.

BeginExecuteNonQuery(AsyncCallback, Object)

Initiiert die asynchrone Ausführung der Transact-SQL-Anweisung oder der gespeicherter Prozedur, die von diesem SqlCommand beschrieben wird, wenn eine Rückrufprozedur und Zustandsinformationen verfügbar sind.

BeginExecuteReader()

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

BeginExecuteReader(AsyncCallback, Object)

Initiiert die asynchrone Ausführung der Transact-SQL-Anweisung oder der gespeicherten Prozedur, die von diesem SqlCommand beschrieben wird, und ruft ein oder mehrere Resultsets vom Server ab, wenn eine Rückrufprozedur und Zustandsinformationen verfügbar sind.

BeginExecuteReader(AsyncCallback, Object, CommandBehavior)

Initiiert die asynchrone Ausführung der Transact-SQL-Anweisung oder der gespeicherten Prozedur, die von diesem SqlCommand beschrieben wird, wobei einer der CommandBehavior-Werte verwendet wird und ein oder mehrere Resultsets vom Server abgerufen werden, wenn eine Rückrufprozedur und Zustandsinformationen verfügbar sind.

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.

CreateDbParameter()

Erstellt eine neue Instanz eines DbParameter-Objekts.

(Geerbt von DbCommand)
CreateObjRef(Type)

Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind.

(Geerbt von MarshalByRefObject)
CreateParameter()

Erstellt eine neue Instanz eines SqlParameter-Objekts.

Dispose()

Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen.

(Geerbt von DbCommand)
Dispose()

Gibt alle vom Component verwendeten Ressourcen frei.

(Geerbt von Component)
Dispose(Boolean)

Gibt die von DbCommand verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.

(Geerbt von DbCommand)
Dispose(Boolean)

Gibt die von Component verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.

(Geerbt von Component)
DisposeAsync()

Stellt das Befehlsobjekt asynchron bereit.

(Geerbt von DbCommand)
EndExecuteNonQuery(IAsyncResult)

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

EndExecuteReader(IAsyncResult)

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

EndExecuteXmlReader(IAsyncResult)

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

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
ExecuteDbDataReader(CommandBehavior)

Führt den Befehl gegen seine Verbindung aus, und gibt eine DbDataReader zurück, die verwendet werden kann, um auf die Ergebnisse zuzugreifen.

(Geerbt von DbCommand)
ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken)

Anbieter sollten diese Methode implementieren, um eine nicht standardmäßige Implementierung für ExecuteReader-Überladungen bereitzustellen.

Die Standardimplementierung ruft die synchrone ExecuteReader()-Methode auf und gibt eine abgeschlossene Aufgabe zurück. Der aufrufende Thread wird blockiert. Die Standardimplementierung gibt eine abgebrochene Aufgabe zurück, wenn sie einen bereits abgebrochenen Abbruchtoken erhalten hat. Die Ausnahmen, die von ExecuteReader ausgelöst werden, werden über die zurückgegebene Task Exception-Eigenschaft übermittelt.

Diese Methode nimmt ein Abbruchtoken an, das verwendet werden kann, um ein frühes Abbrechen des Vorgangs anzufordern. Implementierungen können diese Anforderung ignorieren.

(Geerbt von DbCommand)
ExecuteNonQuery()

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

ExecuteNonQueryAsync()

Eine asynchrone Version von ExecuteNonQuery(), die den Befehl gegen das Verbindungsobjekt ausführt, gibt die Anzahl der betroffenen Zeilen zurück.

Ruft ExecuteNonQueryAsync(CancellationToken) mit CancellationToken.None auf.

(Geerbt von DbCommand)
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.

ExecuteNonQueryAsync(CancellationToken)

Dies ist die asynchrone Version von ExecuteNonQuery(). Anbieter sollten mit einer entsprechenden Implementierung überschreiben. Das Abbruchtoken kann optional ignoriert werden.

Die Standardimplementierung ruft die synchrone ExecuteNonQuery()-Methode auf und gibt eine abgeschlossene Aufgabe zurück. Der aufrufende Thread wird blockiert. Die Standardimplementierung gibt eine abgebrochene Aufgabe zurück, wenn sie einen bereits abgebrochenen Abbruchtoken erhalten hat. Die Ausnahmen, die von ExecuteNonQuery() ausgelöst werden, werden über die zurückgegebene Task Exception-Eigenschaft übermittelt.

Rufen Sie keine anderen Methoden und Eigenschaften des DbCommand-Objekts auf, bis die zurückgegebene Aufgabe abgeschlossen ist.

(Geerbt von DbCommand)
ExecuteReader()

Sendet CommandText an Connection und erstellt eine SqlDataReader.

ExecuteReader(CommandBehavior)

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

ExecuteReaderAsync()

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

ExecuteReaderAsync()

Eine asynchrone Version von ExecuteReader, die den Befehl für die Verbindung ausführt, gibt eine DbDataReader zurück, die verwendet werden kann, um auf die Ergebnisse zuzugreifen.

Ruft ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken) mit CancellationToken.None auf.

(Geerbt von DbCommand)
ExecuteReaderAsync(CancellationToken)

Eine asynchrone Version von ExecuteReader(), die den CommandText an die Connection sendet, und einen 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(CancellationToken)

Eine asynchrone Version von ExecuteReader, die den Befehl für die Verbindung ausführt, gibt eine DbDataReader zurück, die verwendet werden kann, um auf die Ergebnisse zuzugreifen.

Ruft ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken) auf.

(Geerbt von DbCommand)
ExecuteReaderAsync(CommandBehavior)

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

ExecuteReaderAsync(CommandBehavior)

Eine asynchrone Version von ExecuteReader, die den Befehl für die Verbindung ausführt, gibt eine DbDataReader zurück, die verwendet werden kann, um auf die Ergebnisse zuzugreifen.

Ruft ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken) auf.

(Geerbt von DbCommand)
ExecuteReaderAsync(CommandBehavior, CancellationToken)

Eine asynchrone Version von ExecuteReader(CommandBehavior), die den CommandText an die Connection sendet, und einen 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, CancellationToken)

Ruft ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken) auf.

(Geerbt von DbCommand)
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()

Eine asynchrone Version von ExecuteScalar(), die den Befehl ausführt und die erste Spalte der ersten Zeile im ersten zurückgegebenen Resultset zurückgibt. Alle anderen Spalten, Zeilen und Ergebnissätze werden ignoriert.

Ruft ExecuteScalarAsync(CancellationToken) mit CancellationToken.None auf.

(Geerbt von DbCommand)
ExecuteScalarAsync(CancellationToken)

Eine asynchrone Version von ExecuteScalar(), die die Abfrage asynchron ausführt und die erste Spalte der ersten Zeile in dem von der Abfrage zurückgegebenen Resultset zurückgibt. 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.

ExecuteScalarAsync(CancellationToken)

Dies ist die asynchrone Version von ExecuteScalar(). Anbieter sollten mit einer entsprechenden Implementierung überschreiben. Das Abbruchtoken kann optional ignoriert werden.

Die Standardimplementierung ruft die synchrone ExecuteScalar()-Methode auf und gibt eine abgeschlossene Aufgabe zurück. Der aufrufende Thread wird blockiert. Die Standardimplementierung gibt eine abgebrochene Aufgabe zurück, wenn sie einen bereits abgebrochenen Abbruchtoken erhalten hat. Die Ausnahmen, die von ExecuteReader ausgelöst werden, werden über die zurückgegebene Task Exception-Eigenschaft übermittelt.

Rufen Sie keine anderen Methoden und Eigenschaften des DbCommand-Objekts auf, bis die zurückgegebene Aufgabe abgeschlossen ist.

(Geerbt von DbCommand)
ExecuteXmlReader()

Sendet CommandText an Connection und erstellt ein XmlReader-Objekt.

ExecuteXmlReaderAsync()

Eine asynchrone Version von ExecuteXmlReader(), die CommandText zu Connection sendet, und ein XmlReader-Objekt erstellt.

Ausnahmen werden über das zurückgegebene Aufgabenobjekt gemeldet.

ExecuteXmlReaderAsync(CancellationToken)

Eine asynchrone Version von ExecuteXmlReader(), die CommandText zu Connection 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.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetLifetimeService()
Veraltet.

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert.

(Geerbt von MarshalByRefObject)
GetService(Type)

Gibt ein Objekt zurück, das einen von der Component oder von deren Container bereitgestellten Dienst darstellt.

(Geerbt von Component)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
InitializeLifetimeService()
Veraltet.

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab.

(Geerbt von MarshalByRefObject)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.

(Geerbt von MarshalByRefObject)
Prepare()

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

PrepareAsync(CancellationToken)

Erstellt asynchron eine vorbereitete (oder kompilierte) Version des Befehls für die Datenquelle.

(Geerbt von DbCommand)
ResetCommandTimeout()

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

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
ToString()

Gibt einen String zurück, der den Namen der Component enthält (sofern vorhanden). Diese Methode darf nicht überschrieben werden.

(Geerbt von Component)

Ereignisse

Disposed

Tritt auf, wenn die Komponente von einem Aufruf der Dispose()-Methode verworfen wird.

(Geerbt von Component)
StatementCompleted

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

Explizite Schnittstellenimplementierungen

ICloneable.Clone()

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

IDbCommand.Connection

Ruft die IDbConnection ab, die von dieser Instanz des IDbCommand verwendet wird, oder legt diese fest.

(Geerbt von DbCommand)
IDbCommand.CreateParameter()

Erstellt eine neue Instanz eines SqlParameter-Objekts.

IDbCommand.CreateParameter()

Erstellt eine neue Instanz eines IDbDataParameter -Objekts.

(Geerbt von DbCommand)
IDbCommand.ExecuteReader()

Sendet den CommandText an die Connection und erstellt eine SqlDataReader-Klasse.

IDbCommand.ExecuteReader()

Führt den CommandText für die Connection aus und erstellt einen IDataReader.

(Geerbt von DbCommand)
IDbCommand.ExecuteReader(CommandBehavior)

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

IDbCommand.ExecuteReader(CommandBehavior)

Führt CommandText für die Connection aus und erstellt mit einem der IDataReader-Werte einen CommandBehavior.

(Geerbt von DbCommand)
IDbCommand.Parameters

Ruft das IDataParameterCollection ab.

(Geerbt von DbCommand)
IDbCommand.Transaction

Ruft die DbTransaction ab, in der dieses DbCommand-Objekt ausgeführt wird, oder legt sie fest.

(Geerbt von DbCommand)

Gilt für

Siehe auch