SqlCommand Classe

Définition

Représente une instruction Transact-SQL ou une procédure stockée à exécuter par rapport à une base de données SQL Server.Represents a Transact-SQL statement or stored procedure to execute against a SQL Server database. Cette classe ne peut pas être héritée.This class cannot be inherited.

public ref class SqlCommand sealed : System::Data::Common::DbCommand, ICloneable, IDisposable
public sealed class SqlCommand : System.Data.Common.DbCommand, ICloneable, IDisposable
type SqlCommand = class
    inherit DbCommand
    interface IDbCommand
    interface ICloneable
    interface IDisposable
Public NotInheritable Class SqlCommand
Inherits DbCommand
Implements ICloneable, IDisposable
Héritage
Implémente

Exemples

L’exemple suivant crée un SqlConnection, un SqlCommandet un SqlDataReader.The following example creates a SqlConnection, a SqlCommand, and a SqlDataReader. L’exemple lit les données, en les écrivant dans la console.The example reads through the data, writing it to the console. Enfin, l’exemple ferme le SqlDataReader, puis le SqlConnection lorsqu’il quitte les blocs de code Using.Finally, the example closes the SqlDataReader and then the SqlConnection as it exits the Using code blocks.

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

L’exemple suivant montre comment créer et exécuter différents types d’objets SqlCommand.The following sample shows how to create and execute different types of SqlCommand objects.

Tout d’abord, vous devez créer l’exemple de base de données en exécutant le script suivant :First you must create the sample database, by executing the following script:

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  

Ensuite, compilez et exécutez ce qui suit :Next, compile and execute the following:

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

Remarques

Lorsqu’une instance de SqlCommand est créée, les propriétés en lecture/écriture sont définies sur leurs valeurs initiales.When an instance of SqlCommand is created, the read/write properties are set to their initial values. Pour obtenir la liste de ces valeurs, consultez le constructeur SqlCommand.For a list of these values, see the SqlCommand constructor.

SqlCommand présente les méthodes suivantes pour exécuter des commandes dans une base de données SQL Server :SqlCommand features the following methods for executing commands at a SQL Server database:

ÉlémentItem DescriptionDescription
BeginExecuteNonQuery Lance l’exécution asynchrone de l’instruction Transact-SQL ou de la procédure stockée qui est décrite par cette SqlCommand, en exécutant généralement des commandes telles que les instructions INSERT, DELETE, UPDATE et SET.Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this SqlCommand, generally executing commands such as INSERT, DELETE, UPDATE, and SET statements. Chaque appel à BeginExecuteNonQuery doit être associé à un appel à EndExecuteNonQuery qui termine l’opération, généralement sur un thread distinct.Each call to BeginExecuteNonQuery must be paired with a call to EndExecuteNonQuery which finishes the operation, typically on a separate thread.
BeginExecuteReader Lance l’exécution asynchrone de l’instruction Transact-SQL ou de la procédure stockée qui est décrite par cet SqlCommand et récupère un ou plusieurs jeux de résultats du serveur.Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this SqlCommand and retrieves one or more results sets from the server. Chaque appel à BeginExecuteReader doit être associé à un appel à EndExecuteReader qui termine l’opération, généralement sur un thread distinct.Each call to BeginExecuteReader must be paired with a call to EndExecuteReader which finishes the operation, typically on a separate thread.
BeginExecuteXmlReader Lance l’exécution asynchrone de l’instruction ou la procédure stockée Transact-SQL qui est décrite par ce SqlCommand.Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this SqlCommand. Chaque appel à BeginExecuteXmlReader doit être associé à un appel à EndExecuteXmlReader, ce qui termine l’opération, généralement sur un thread distinct, et retourne un objet XmlReader.Each call to BeginExecuteXmlReader must be paired with a call to EndExecuteXmlReader, which finishes the operation, typically on a separate thread, and returns an XmlReader object.
ExecuteReader Exécute des commandes qui retournent des lignes.Executes commands that return rows. Pour des performances accrues, ExecuteReader appelle des commandes à l’aide de la procédure stockée système Transact-SQL sp_executesql.For increased performance, ExecuteReader invokes commands using the Transact-SQL sp_executesql system stored procedure. Par conséquent, ExecuteReader peut ne pas avoir l’effet souhaité si vous utilisez pour exécuter des commandes telles que des instructions SET Transact-SQL.Therefore, ExecuteReader might not have the effect that you want if used to execute commands such as Transact-SQL SET statements.
ExecuteNonQuery Exécute des commandes, telles que les instructions Transact-SQL INSERT, DELETE, UPDATE et SET.Executes commands such as Transact-SQL INSERT, DELETE, UPDATE, and SET statements.
ExecuteScalar Récupère une valeur unique (par exemple, une valeur d’agrégation) à partir d’une base de données.Retrieves a single value (for example, an aggregate value) from a database.
ExecuteXmlReader Envoie CommandText à Connection et génère un objet XmlReader.Sends the CommandText to the Connection and builds an XmlReader object.

Vous pouvez réinitialiser la propriété CommandText et réutiliser l’objet SqlCommand.You can reset the CommandText property and reuse the SqlCommand object. Toutefois, vous devez fermer le SqlDataReader avant de pouvoir exécuter une commande New ou Previous.However, you must close the SqlDataReader before you can execute a new or previous command.

Si une SqlException est générée par la méthode exécutant un SqlCommand, le SqlConnection reste ouvert lorsque le niveau de gravité est inférieur ou égal à 19.If a SqlException is generated by the method executing a SqlCommand, the SqlConnection remains open when the severity level is 19 or less. Lorsque le niveau de gravité est supérieur ou égal à 20, le serveur ferme habituellement la SqlConnection.When the severity level is 20 or greater, the server ordinarily closes the SqlConnection. L'utilisateur peut toutefois rouvrir la connexion et continuer.However, the user can reopen the connection and continue.

Notes

Sans nom, également appelé ordinal, les paramètres ne sont pas pris en charge par le Fournisseur de données .NET Framework pour SQL Server.Nameless, also called ordinal, parameters are not supported by the .NET Framework Data Provider for SQL Server.

Constructeurs

SqlCommand()

Initialise une nouvelle instance de la classe SqlCommand.Initializes a new instance of the SqlCommand class.

SqlCommand(String)

Initialise une nouvelle instance de la classe SqlCommand avec le texte de la requête.Initializes a new instance of the SqlCommand class with the text of the query.

SqlCommand(String, SqlConnection)

Initialise une nouvelle instance de la classe SqlCommand avec le texte de la requête et un SqlConnectionInitializes a new instance of the SqlCommand class with the text of the query and a SqlConnection.

SqlCommand(String, SqlConnection, SqlTransaction)

Initialise une nouvelle instance de la classe SqlCommand avec le texte de la requête, SqlConnection et SqlTransaction.Initializes a new instance of the SqlCommand class with the text of the query, a SqlConnection, and the SqlTransaction.

SqlCommand(String, SqlConnection, SqlTransaction, SqlCommandColumnEncryptionSetting)

Initialise une nouvelle instance de la classe SqlCommand avec le texte de commande, la connexion, la transaction et le paramètre de chiffrement spécifiés.Initializes a new instance of the SqlCommand class with specified command text, connection, transaction, and encryption setting.

Propriétés

CanRaiseEvents

Obtient une valeur qui indique si le composant peut déclencher un événement.Gets a value indicating whether the component can raise an event.

(Hérité de Component)
ColumnEncryptionSetting

Obtient ou définit le paramètre de chiffrement de colonne pour cette commande.Gets or sets the column encryption setting for this command.

CommandText

Obtient ou définit l'instruction Transact-SQL, le nom de table ou la procédure stockée à exécuter au niveau de la source de données.Gets or sets the Transact-SQL statement, table name or stored procedure to execute at the data source.

CommandTimeout

Obtient ou définit le délai d’attente (en secondes) avant de mettre fin à la tentative d’exécution d’une commande et de générer une erreur.Gets or sets the wait time (in seconds) before terminating the attempt to execute a command and generating an error.

CommandType

Obtient ou définit une valeur indiquant la manière dont la propriété CommandText doit être interprétée.Gets or sets a value indicating how the CommandText property is to be interpreted.

Connection

Obtient ou définit le SqlConnection utilisé par cette instance du SqlCommand.Gets or sets the SqlConnection used by this instance of the SqlCommand.

Container

Obtient le IContainer qui contient Component.Gets the IContainer that contains the Component.

(Hérité de Component)
DesignMode

Obtient une valeur qui indique si Component est actuellement en mode design.Gets a value that indicates whether the Component is currently in design mode.

(Hérité de Component)
DesignTimeVisible

Obtient ou définit une valeur indiquant si l'objet command doit être visible dans un contrôle du concepteur Windows Form.Gets or sets a value indicating whether the command object should be visible in a Windows Form Designer control.

Events

Obtient la liste des gestionnaires d'événements attachés à ce Component.Gets the list of event handlers that are attached to this Component.

(Hérité de Component)
Notification

Obtient ou définit une valeur qui spécifie l’objet SqlNotificationRequest lié à cette commande.Gets or sets a value that specifies the SqlNotificationRequest object bound to this command.

NotificationAutoEnlist

Obtient ou définit une valeur indiquant si l’application doit recevoir automatiquement des notifications de requête de la part d’un objet SqlDependency commun.Gets or sets a value indicating whether the application should automatically receive query notifications from a common SqlDependency object.

Parameters

Obtient SqlParameterCollection.Gets the SqlParameterCollection.

Site

Obtient ou définit le ISite de Component.Gets or sets the ISite of the Component.

(Hérité de Component)
Transaction

Obtient ou définit l'objet SqlTransaction dans lequel SqlCommand s'exécute.Gets or sets the SqlTransaction within which the SqlCommand executes.

UpdatedRowSource

Obtient ou définit la manière dont les résultats des commandes sont appliqués à DataRow quand ils sont utilisés par la méthode Update de DbDataAdapter.Gets or sets how command results are applied to the DataRow when used by the Update method of the DbDataAdapter.

Méthodes

BeginExecuteNonQuery()

Lance l’exécution asynchrone de l’instruction ou la procédure stockée Transact-SQL qui est décrite par ce SqlCommand.Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this SqlCommand.

BeginExecuteNonQuery(AsyncCallback, Object)

Lance l’exécution asynchrone de l’instruction Transact-SQL ou de la procédure stockée qui est décrite par ce SqlCommand, pour une procédure de rappel et des informations d’état données.Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this SqlCommand, given a callback procedure and state information.

BeginExecuteReader()

Lance l’exécution asynchrone de l’instruction Transact-SQL ou de la procédure stockée qui est décrite par ce SqlCommand et récupère un ou plusieurs jeux de résultats du serveur.Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this SqlCommand, and retrieves one or more result sets from the server.

BeginExecuteReader(AsyncCallback, Object)

Lance l’exécution asynchrone de l’instruction Transact-SQL ou de la procédure stockée qui est décrite par ce SqlCommand et récupère un ou plusieurs jeux de résultats du serveur, pour une procédure de rappel et des informations d’état données.Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this SqlCommand and retrieves one or more result sets from the server, given a callback procedure and state information.

BeginExecuteReader(AsyncCallback, Object, CommandBehavior)

Lance l’exécution asynchrone de l’instruction Transact-SQL ou de la procédure stockée qui est décrite par ce SqlCommand, en utilisant l’une des valeurs CommandBehavior, et récupère un ou plusieurs jeux de résultats à partir du serveur, pour une procédure de rappel et des informations d’état données.Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this SqlCommand, using one of the CommandBehavior values, and retrieving one or more result sets from the server, given a callback procedure and state information.

BeginExecuteReader(CommandBehavior)

Lance l’exécution asynchrone de l’instruction Transact-SQL ou de la procédure stockée qui est décrite par ce SqlCommand à l’aide de l’une des valeurs de CommandBehavior.Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this SqlCommand using one of the CommandBehavior values.

BeginExecuteXmlReader()

Lance l’exécution asynchrone de l’instruction Transact-SQL ou de la procédure stockée décrite par ce SqlCommand et retourne les résultats sous forme d’objet XmlReader.Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this SqlCommand and returns results as an XmlReader object.

BeginExecuteXmlReader(AsyncCallback, Object)

Lance l’exécution asynchrone de l’instruction Transact-SQL ou de la procédure stockée qui est décrite par cet SqlCommand et retourne les résultats en tant qu’objet XmlReader à l’aide d’une procédure de rappel.Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this SqlCommand and returns results as an XmlReader object, using a callback procedure.

Cancel()

Tente d’annuler l’exécution d’un SqlCommand.Tries to cancel the execution of a SqlCommand.

Clone()

Crée un objet SqlCommand qui est une copie de l’instance actuelle.Creates a new SqlCommand object that is a copy of the current instance.

CreateObjRef(Type)

Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Hérité de MarshalByRefObject)
CreateParameter()

Crée une nouvelle instance d'un objet SqlParameter.Creates a new instance of a SqlParameter object.

Dispose()

Libère toutes les ressources utilisées par Component.Releases all resources used by the Component.

(Hérité de Component)
Dispose(Boolean)

Libère les ressources non managées utilisées par Component et libère éventuellement les ressources managées.Releases the unmanaged resources used by the Component and optionally releases the managed resources.

(Hérité de Component)
EndExecuteNonQuery(IAsyncResult)

Termine l'exécution asynchrone d'une instruction Transact-SQL.Finishes asynchronous execution of a Transact-SQL statement.

EndExecuteReader(IAsyncResult)

Termine l’exécution asynchrone d’une instruction Transact-SQL, en retournant le SqlDataReader demandé.Finishes asynchronous execution of a Transact-SQL statement, returning the requested SqlDataReader.

EndExecuteXmlReader(IAsyncResult)

Termine l'exécution asynchrone d'une instruction Transact-SQL en retournant les données demandées en XML.Finishes asynchronous execution of a Transact-SQL statement, returning the requested data as XML.

Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
ExecuteNonQuery()

Exécute une instruction Transact-SQL sur la connexion et retourne le nombre de lignes affectées.Executes a Transact-SQL statement against the connection and returns the number of rows affected.

ExecuteNonQueryAsync(CancellationToken)

Version asynchrone de ExecuteNonQuery(), qui exécute une instruction Transact-SQLTransact-SQL sur la connexion et retourne le nombre de lignes affectées.An asynchronous version of ExecuteNonQuery(), which executes a Transact-SQLTransact-SQL statement against the connection and returns the number of rows affected. Le jeton d'annulation peut être utilisé pour demander que l'opération soit abandonnée avant que le délai d'attente de commande s'écoule.The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Les exceptions seront signalées via l’objet Task retourné.Exceptions will be reported via the returned Task object.

ExecuteReader()

Envoie CommandText à Connection et génère un SqlDataReader.Sends the CommandText to the Connection and builds a SqlDataReader.

ExecuteReader(CommandBehavior)

Envoie le CommandText au Connection, et génère un SqlDataReader à l’aide de l’une des valeurs CommandBehavior.Sends the CommandText to the Connection, and builds a SqlDataReader using one of the CommandBehavior values.

ExecuteReaderAsync()

Version asynchrone de ExecuteReader(), qui envoie le CommandText au Connection et génère un SqlDataReader.An asynchronous version of ExecuteReader(), which sends the CommandText to the Connection and builds a SqlDataReader. Les exceptions seront signalées via l’objet Task retourné.Exceptions will be reported via the returned Task object.

ExecuteReaderAsync(CancellationToken)

Version asynchrone de ExecuteReader(), qui envoie le CommandText au Connection et génère un SqlDataReader.An asynchronous version of ExecuteReader(), which sends the CommandText to the Connection and builds a SqlDataReader.

Le jeton d'annulation peut être utilisé pour demander que l'opération soit abandonnée avant que le délai d'attente de commande s'écoule.The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Les exceptions seront signalées via l’objet Task retourné.Exceptions will be reported via the returned Task object.

ExecuteReaderAsync(CommandBehavior)

Version asynchrone d’ExecuteReader(CommandBehavior), qui envoie le CommandText au Connection et génère un SqlDataReader.An asynchronous version of ExecuteReader(CommandBehavior), which sends the CommandText to the Connection, and builds a SqlDataReader. Les exceptions seront signalées via l’objet Task retourné.Exceptions will be reported via the returned Task object.

ExecuteReaderAsync(CommandBehavior, CancellationToken)

Version asynchrone de ExecuteReader(CommandBehavior), qui envoie le CommandText au Connection et génère un SqlDataReader.An asynchronous version of ExecuteReader(CommandBehavior), which sends the CommandText to the Connection, and builds a SqlDataReader

Le jeton d'annulation peut être utilisé pour demander que l'opération soit abandonnée avant que le délai d'attente de commande s'écoule.The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Les exceptions seront signalées via l’objet Task retourné.Exceptions will be reported via the returned Task object.

ExecuteScalar()

Exécute la requête et retourne la première colonne de la première ligne du jeu de résultats retourné par la requête.Executes the query, and returns the first column of the first row in the result set returned by the query. Les colonnes ou lignes supplémentaires sont ignorées.Additional columns or rows are ignored.

ExecuteScalarAsync(CancellationToken)

Version asynchrone d’ExecuteScalar(), qui exécute la requête de façon asynchrone et retourne la première colonne de la première ligne du jeu de résultats retourné par la requête.An asynchronous version of ExecuteScalar(), which executes the query asynchronously and returns the first column of the first row in the result set returned by the query. Les colonnes ou lignes supplémentaires sont ignorées.Additional columns or rows are ignored.

Le jeton d'annulation peut être utilisé pour demander que l'opération soit abandonnée avant que le délai d'attente de commande s'écoule.The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Les exceptions seront signalées via l’objet Task retourné.Exceptions will be reported via the returned Task object.

ExecuteXmlReader()

Envoie CommandText à Connection et génère un objet XmlReader.Sends the CommandText to the Connection and builds an XmlReader object.

ExecuteXmlReaderAsync()

Version asynchrone de ExecuteXmlReader(), qui envoie le CommandText au Connection et génère un objet XmlReader.An asynchronous version of ExecuteXmlReader(), which sends the CommandText to the Connection and builds an XmlReader object.

Les exceptions seront signalées via l’objet Task retourné.Exceptions will be reported via the returned Task object.

ExecuteXmlReaderAsync(CancellationToken)

Version asynchrone de ExecuteXmlReader(), qui envoie le CommandText au Connection et génère un objet XmlReader.An asynchronous version of ExecuteXmlReader(), which sends the CommandText to the Connection and builds an XmlReader object.

Le jeton d'annulation peut être utilisé pour demander que l'opération soit abandonnée avant que le délai d'attente de commande s'écoule.The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Les exceptions seront signalées via l’objet Task retourné.Exceptions will be reported via the returned Task object.

GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetLifetimeService()

Récupère l'objet de service de durée de vie en cours qui contrôle la stratégie de durée de vie de cette instance.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Hérité de MarshalByRefObject)
GetService(Type)

Retourne un objet qui représente un service fourni par Component ou par son Container.Returns an object that represents a service provided by the Component or by its Container.

(Hérité de Component)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
InitializeLifetimeService()

Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance.Obtains a lifetime service object to control the lifetime policy for this instance.

(Hérité de MarshalByRefObject)
MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
MemberwiseClone(Boolean)

Crée une copie superficielle de l'objet MarshalByRefObject actuel.Creates a shallow copy of the current MarshalByRefObject object.

(Hérité de MarshalByRefObject)
Prepare()

Crée une version préparée de la commande sur une instance de SQL Server.Creates a prepared version of the command on an instance of SQL Server.

ResetCommandTimeout()

Rétablit la valeur par défaut de la propriété CommandTimeout.Resets the CommandTimeout property to its default value.

ToString()

Retourne un String contenant le nom du Component, s’il en existe un.Returns a String containing the name of the Component, if any. Cette méthode ne doit pas être remplacée.This method should not be overridden.

(Hérité de Component)

Événements

Disposed

Se produit lorsque le composant est supprimé par un appel à la méthode Dispose().Occurs when the component is disposed by a call to the Dispose() method.

(Hérité de Component)
StatementCompleted

Se produit quand l'exécution d'une instruction Transact-SQL se termine.Occurs when the execution of a Transact-SQL statement completes.

Implémentations d’interfaces explicites

ICloneable.Clone()

Crée un objet SqlCommand qui est une copie de l’instance actuelle.Creates a new SqlCommand object that is a copy of the current instance.

IDbCommand.CreateParameter()

Crée une nouvelle instance d'un objet SqlParameter.Creates a new instance of a SqlParameter object.

IDbCommand.ExecuteReader()

Envoie CommandText à Connection et génère SqlDataReader.Sends the CommandText to the Connection, and builds a SqlDataReader.

IDbCommand.ExecuteReader(CommandBehavior)

Envoie le CommandText au Connection, et génère un SqlDataReader à l’aide de l’une des valeurs CommandBehavior.Sends the CommandText to the Connection, and builds a SqlDataReader using one of the CommandBehavior values.

S’applique à

Voir aussi