SqlCommand Classe

Definizione

Rappresenta un'istruzione Transact-SQL o una stored procedure da eseguire in relazione a un database SQL Server.Represents a Transact-SQL statement or stored procedure to execute against a SQL Server database. Questa classe non può essere ereditata.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
Ereditarietà
Implementazioni

Esempi

Nell'esempio seguente vengono creati un SqlConnection, un SqlCommande un SqlDataReader.The following example creates a SqlConnection, a SqlCommand, and a SqlDataReader. L'esempio legge i dati e li scrive nella console.The example reads through the data, writing it to the console. Infine, l'esempio chiude il SqlDataReader e quindi il SqlConnection quando esce dal Using blocchi di codice.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

Nell'esempio seguente viene illustrato come creare ed eseguire tipi diversi di oggetti SqlCommand.The following sample shows how to create and execute different types of SqlCommand objects.

Per prima cosa, è necessario creare il database di esempio eseguendo lo script seguente: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  

Successivamente, compilare ed eseguire il codice seguente: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");  
   }  
}  

Commenti

Quando viene creata un'istanza di SqlCommand, le proprietà di lettura/scrittura vengono impostate sui rispettivi valori iniziali.When an instance of SqlCommand is created, the read/write properties are set to their initial values. Per un elenco di questi valori, vedere il costruttore SqlCommand.For a list of these values, see the SqlCommand constructor.

SqlCommand include i metodi seguenti per l'esecuzione di comandi in un database SQL Server:SqlCommand features the following methods for executing commands at a SQL Server database:

ElementoItem DescriptionDescription
BeginExecuteNonQuery Avvia l'esecuzione asincrona dell'istruzione Transact-SQL o stored procedure descritta da questo SqlCommand, in genere eseguendo comandi come istruzioni INSERT, DELETE, UPDATE e 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. Ogni chiamata a BeginExecuteNonQuery deve essere abbinata a una chiamata a EndExecuteNonQuery che completa l'operazione, in genere in un thread separato.Each call to BeginExecuteNonQuery must be paired with a call to EndExecuteNonQuery which finishes the operation, typically on a separate thread.
BeginExecuteReader Avvia l'esecuzione asincrona dell'istruzione Transact-SQL o stored procedure descritta da questo SqlCommand e recupera uno o più set di risultati dal server.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. Ogni chiamata a BeginExecuteReader deve essere abbinata a una chiamata a EndExecuteReader che completa l'operazione, in genere in un thread separato.Each call to BeginExecuteReader must be paired with a call to EndExecuteReader which finishes the operation, typically on a separate thread.
BeginExecuteXmlReader Avvia l'esecuzione asincrona dell'istruzione Transact-SQL o della stored procedure descritta da SqlCommand.Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this SqlCommand. Ogni chiamata a BeginExecuteXmlReader deve essere abbinata a una chiamata a EndExecuteXmlReader, che completa l'operazione, in genere in un thread separato e restituisce un oggetto 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 Esegue i comandi che restituiscono righe.Executes commands that return rows. Per migliorare le prestazioni, ExecuteReader richiama i comandi utilizzando il sistema Transact-SQL sp_executesql stored procedure.For increased performance, ExecuteReader invokes commands using the Transact-SQL sp_executesql system stored procedure. Pertanto, ExecuteReader potrebbe non avere l'effetto desiderato se utilizzato per eseguire comandi, ad esempio istruzioni 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 Esegue comandi come istruzioni INSERT, DELETE, UPDATE e SET Transact-SQL.Executes commands such as Transact-SQL INSERT, DELETE, UPDATE, and SET statements.
ExecuteScalar Recupera un singolo valore, ad esempio un valore di aggregazione, da un database.Retrieves a single value (for example, an aggregate value) from a database.
ExecuteXmlReader Invia la proprietà CommandText alla proprietà Connection e compila un oggetto XmlReader.Sends the CommandText to the Connection and builds an XmlReader object.

È possibile reimpostare la proprietà CommandText e riutilizzare l'oggetto SqlCommand.You can reset the CommandText property and reuse the SqlCommand object. Tuttavia, è necessario chiudere il SqlDataReader prima di poter eseguire un comando nuovo o precedente.However, you must close the SqlDataReader before you can execute a new or previous command.

Se un SqlException viene generato dal metodo che esegue un SqlCommand, il SqlConnection rimane aperto quando il livello di gravità è 19 o inferiore.If a SqlException is generated by the method executing a SqlCommand, the SqlConnection remains open when the severity level is 19 or less. Quando il livello di gravità è maggiore o uguale a 20, il server chiude normalmente il SqlConnection.When the severity level is 20 or greater, the server ordinarily closes the SqlConnection. L'utente può tuttavia riaprire la connessione e continuare.However, the user can reopen the connection and continue.

Nota

I parametri senza nome, detti anche ordinali, non sono supportati dal .NET Framework provider di dati per SQL Server.Nameless, also called ordinal, parameters are not supported by the .NET Framework Data Provider for SQL Server.

Costruttori

SqlCommand()

Inizializza una nuova istanza della classe SqlCommand.Initializes a new instance of the SqlCommand class.

SqlCommand(String)

Inizializza una nuova istanza della classe SqlCommand con il testo della query.Initializes a new instance of the SqlCommand class with the text of the query.

SqlCommand(String, SqlConnection)

Inizializza una nuova istanza della classe SqlCommand con il testo della query e un oggetto SqlConnection.Initializes a new instance of the SqlCommand class with the text of the query and a SqlConnection.

SqlCommand(String, SqlConnection, SqlTransaction)

Inizializza una nuova istanza della classe SqlCommand con il testo della query, un oggetto SqlConnection e l'oggetto 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)

Inizializza una nuova istanza della classe SqlCommand con l'impostazione specificata per il testo del comando, la connessione, la transazione e la crittografia.Initializes a new instance of the SqlCommand class with specified command text, connection, transaction, and encryption setting.

Proprietà

CanRaiseEvents

Ottiene un valore che indica se il componente può generare un evento.Gets a value indicating whether the component can raise an event.

(Ereditato da Component)
ColumnEncryptionSetting

Ottiene o imposta l'impostazione di crittografia delle colonne per questo comando.Gets or sets the column encryption setting for this command.

CommandText

Ottiene o imposta l'istruzione Transact-SQL, il nome di tabella o la stored procedure da eseguire all'origine dati.Gets or sets the Transact-SQL statement, table name or stored procedure to execute at the data source.

CommandTimeout

Ottiene o imposta il tempo di attesa (in secondi) prima di terminare il tentativo di eseguire un comando e generare un errore.Gets or sets the wait time (in seconds) before terminating the attempt to execute a command and generating an error.

CommandType

Ottiene o imposta un valore che indica come interpretare la proprietà CommandText.Gets or sets a value indicating how the CommandText property is to be interpreted.

Connection

Ottiene o imposta l'oggetto SqlConnection usato da questa istanza dell'oggetto SqlCommand.Gets or sets the SqlConnection used by this instance of the SqlCommand.

Container

Ottiene il IContainer che contiene il Component.Gets the IContainer that contains the Component.

(Ereditato da Component)
DesignMode

Ottiene un valore che indica se il Component si trova in modalità progettazione.Gets a value that indicates whether the Component is currently in design mode.

(Ereditato da Component)
DesignTimeVisible

Ottiene o imposta un valore che indica se l'oggetto comando deve essere visualizzato in un controllo Progettazione Windows Form.Gets or sets a value indicating whether the command object should be visible in a Windows Form Designer control.

Events

Ottiene l'elenco dei gestori eventi allegati a questo Component.Gets the list of event handlers that are attached to this Component.

(Ereditato da Component)
Notification

Ottiene o imposta un valore che specifica l'oggetto SqlNotificationRequest associato a questo comando.Gets or sets a value that specifies the SqlNotificationRequest object bound to this command.

NotificationAutoEnlist

Ottiene o imposta un valore che indica se l'applicazione deve ricevere automaticamente le notifiche di query da un oggetto SqlDependency comune.Gets or sets a value indicating whether the application should automatically receive query notifications from a common SqlDependency object.

Parameters

Ottiene l'oggetto SqlParameterCollection.Gets the SqlParameterCollection.

Site

Ottiene o imposta l'oggetto ISite di Component.Gets or sets the ISite of the Component.

(Ereditato da Component)
Transaction

Ottiene o imposta l'oggetto SqlTransaction in cui viene eseguito SqlCommand.Gets or sets the SqlTransaction within which the SqlCommand executes.

UpdatedRowSource

Ottiene o imposta il modo in cui i risultati del comando vengono applicati a DataRow quando vengono usati dal metodo Update di DbDataAdapter.Gets or sets how command results are applied to the DataRow when used by the Update method of the DbDataAdapter.

Metodi

BeginExecuteNonQuery()

Avvia l'esecuzione asincrona dell'istruzione Transact-SQL o della stored procedure descritta da SqlCommand.Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this SqlCommand.

BeginExecuteNonQuery(AsyncCallback, Object)

Avvia l'esecuzione asincrona dell'istruzione Transact-SQL o della stored procedure descritta dall'oggetto SqlCommand, in base a una routine di callback e alle informazioni sullo stato.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()

Avvia l'esecuzione asincrona dell'istruzione Transact-SQL o della stored procedure descritta da SqlCommand e recupera uno o più set di risultati dal server.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)

Avvia l'esecuzione asincrona dell'istruzione Transact-SQL o della stored procedure descritta dall'oggetto SqlCommand e recupera uno o più set di risultati dal server, in base alla routine di callback e alle informazioni sullo stato.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)

Avvia l'esecuzione asincrona dell'istruzione o della stored procedure Transact-SQL descritta da SqlCommand, usando uno dei valori di CommandBehavior e recuperando uno o più set di risultati dal server, in base a una routine di callback e alle informazioni sullo stato.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)

Avvia l'esecuzione asincrona dell'istruzione Transact-SQL o della stored procedure descritta dall'oggetto SqlCommand usando uno dei valori 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()

Avvia l'esecuzione asincrona dell'istruzione Transact-SQL o della stored procedure descritta dall'oggetto SqlCommand e restituisce i risultati come oggetto 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)

Avvia l'esecuzione asincrona dell'istruzione Transact-SQL o della stored procedure descritta dall'oggetto SqlCommand e restituisce i risultati come oggetto XmlReader usando una routine di callback.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()

Prova ad annullare l'esecuzione di SqlCommand.Tries to cancel the execution of a SqlCommand.

Clone()

Crea un nuovo oggetto SqlCommand che è una copia dell'istanza corrente.Creates a new SqlCommand object that is a copy of the current instance.

CreateObjRef(Type)

Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Ereditato da MarshalByRefObject)
CreateParameter()

Crea una nuova istanza di un oggetto SqlParameter.Creates a new instance of a SqlParameter object.

Dispose()

Rilascia tutte le risorse usate da Component.Releases all resources used by the Component.

(Ereditato da Component)
Dispose(Boolean)

Rilascia le risorse non gestite usate da Component e, facoltativamente, le risorse gestite.Releases the unmanaged resources used by the Component and optionally releases the managed resources.

(Ereditato da Component)
EndExecuteNonQuery(IAsyncResult)

Completa l'esecuzione asincrona di un'istruzione Transact-SQL.Finishes asynchronous execution of a Transact-SQL statement.

EndExecuteReader(IAsyncResult)

Completa l'esecuzione asincrona di un'istruzione Transact-SQL, restituendo l'oggetto SqlDataReader richiesto.Finishes asynchronous execution of a Transact-SQL statement, returning the requested SqlDataReader.

EndExecuteXmlReader(IAsyncResult)

Completa l'esecuzione asincrona di un'istruzione Transact-SQL, restituendo i dati richiesti in formato XML.Finishes asynchronous execution of a Transact-SQL statement, returning the requested data as XML.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
ExecuteNonQuery()

Permette di eseguire un'istruzione Transact-SQL in base alla connessione e restituisce un numero di righe modificate.Executes a Transact-SQL statement against the connection and returns the number of rows affected.

ExecuteNonQueryAsync(CancellationToken)

Versione asincrona di ExecuteNonQuery(), che esegue un'istruzione Transact-SQLTransact-SQL a fronte della connessione e restituisce il numero di righe interessate.An asynchronous version of ExecuteNonQuery(), which executes a Transact-SQLTransact-SQL statement against the connection and returns the number of rows affected. Il token di annullamento può essere usato per richiedere che l'operazione venga abbandonata prima del timeout del comando.The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Le eccezioni verranno segnalate tramite l'oggetto attività restituito.Exceptions will be reported via the returned Task object.

ExecuteReader()

Invia CommandText a Connection e compila SqlDataReader.Sends the CommandText to the Connection and builds a SqlDataReader.

ExecuteReader(CommandBehavior)

Invia CommandText a Connection e compila SqlDataReader mediante uno dei valori di CommandBehavior.Sends the CommandText to the Connection, and builds a SqlDataReader using one of the CommandBehavior values.

ExecuteReaderAsync()

Versione asincrona di ExecuteReader(), che invia CommandText a Connection e compila un oggetto SqlDataReader.An asynchronous version of ExecuteReader(), which sends the CommandText to the Connection and builds a SqlDataReader. Le eccezioni verranno segnalate tramite l'oggetto attività restituito.Exceptions will be reported via the returned Task object.

ExecuteReaderAsync(CancellationToken)

Versione asincrona di ExecuteReader(), che invia CommandText a Connection e compila un oggetto SqlDataReader.An asynchronous version of ExecuteReader(), which sends the CommandText to the Connection and builds a SqlDataReader.

Il token di annullamento può essere usato per richiedere che l'operazione venga abbandonata prima del timeout del comando.The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Le eccezioni verranno segnalate tramite l'oggetto attività restituito.Exceptions will be reported via the returned Task object.

ExecuteReaderAsync(CommandBehavior)

Versione asincrona di ExecuteReader(CommandBehavior), che invia CommandText a Connection e compila un oggetto SqlDataReader.An asynchronous version of ExecuteReader(CommandBehavior), which sends the CommandText to the Connection, and builds a SqlDataReader. Le eccezioni verranno segnalate tramite l'oggetto attività restituito.Exceptions will be reported via the returned Task object.

ExecuteReaderAsync(CommandBehavior, CancellationToken)

Versione asincrona di ExecuteReader(CommandBehavior), che invia CommandText a Connection e compila un oggetto SqlDataReader.An asynchronous version of ExecuteReader(CommandBehavior), which sends the CommandText to the Connection, and builds a SqlDataReader

Il token di annullamento può essere usato per richiedere che l'operazione venga abbandonata prima del timeout del comando.The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Le eccezioni verranno segnalate tramite l'oggetto attività restituito.Exceptions will be reported via the returned Task object.

ExecuteScalar()

Esegue la query e restituisce la prima colonna della prima riga nel set di risultati restituito dalla query.Executes the query, and returns the first column of the first row in the result set returned by the query. Le colonne o le righe aggiuntive vengono ignorate.Additional columns or rows are ignored.

ExecuteScalarAsync(CancellationToken)

Versione asincrona di ExecuteScalar(), che esegue la query in modo asincrono e restituisce la prima colonna della prima riga nel set di risultati restituito dalla query.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. Le colonne o le righe aggiuntive vengono ignorate.Additional columns or rows are ignored.

Il token di annullamento può essere usato per richiedere che l'operazione venga abbandonata prima del timeout del comando.The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Le eccezioni verranno segnalate tramite l'oggetto attività restituito.Exceptions will be reported via the returned Task object.

ExecuteXmlReader()

Invia la proprietà CommandText alla proprietà Connection e compila un oggetto XmlReader.Sends the CommandText to the Connection and builds an XmlReader object.

ExecuteXmlReaderAsync()

Versione asincrona di ExecuteXmlReader(), che invia CommandText a Connection e compila un oggetto XmlReader.An asynchronous version of ExecuteXmlReader(), which sends the CommandText to the Connection and builds an XmlReader object.

Le eccezioni verranno segnalate tramite l'oggetto attività restituito.Exceptions will be reported via the returned Task object.

ExecuteXmlReaderAsync(CancellationToken)

Versione asincrona di ExecuteXmlReader(), che invia CommandText a Connection e compila un oggetto XmlReader.An asynchronous version of ExecuteXmlReader(), which sends the CommandText to the Connection and builds an XmlReader object.

Il token di annullamento può essere usato per richiedere che l'operazione venga abbandonata prima del timeout del comando.The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Le eccezioni verranno segnalate tramite l'oggetto attività restituito.Exceptions will be reported via the returned Task object.

GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetLifetimeService()

Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Ereditato da MarshalByRefObject)
GetService(Type)

Consente di restituire un oggetto che rappresenta un servizio fornito da Component o dal relativo Container.Returns an object that represents a service provided by the Component or by its Container.

(Ereditato da Component)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
InitializeLifetimeService()

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.Obtains a lifetime service object to control the lifetime policy for this instance.

(Ereditato da MarshalByRefObject)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente.Creates a shallow copy of the current MarshalByRefObject object.

(Ereditato da MarshalByRefObject)
Prepare()

Crea una versione preparata del comando in un'istanza di SQL Server.Creates a prepared version of the command on an instance of SQL Server.

ResetCommandTimeout()

Reimposta il valore predefinito della proprietà CommandTimeout.Resets the CommandTimeout property to its default value.

ToString()

Restituisce un oggetto String che contiene il nome dell'eventuale oggetto Component.Returns a String containing the name of the Component, if any. Questo metodo non deve essere sottoposto a override.This method should not be overridden.

(Ereditato da Component)

Eventi

Disposed

Si verifica quando il componente viene eliminato da una chiamata al metodo Dispose().Occurs when the component is disposed by a call to the Dispose() method.

(Ereditato da Component)
StatementCompleted

Si verifica al completamento dell'esecuzione di un'istruzione Transact-SQL.Occurs when the execution of a Transact-SQL statement completes.

Implementazioni dell'interfaccia esplicita

ICloneable.Clone()

Crea un nuovo oggetto SqlCommand che è una copia dell'istanza corrente.Creates a new SqlCommand object that is a copy of the current instance.

IDbCommand.CreateParameter()

Crea una nuova istanza di un oggetto SqlParameter.Creates a new instance of a SqlParameter object.

IDbCommand.ExecuteReader()

Invia l'oggetto CommandText all'oggetto Connection e compila un oggetto SqlDataReader.Sends the CommandText to the Connection, and builds a SqlDataReader.

IDbCommand.ExecuteReader(CommandBehavior)

Invia CommandText a Connection e compila SqlDataReader mediante uno dei valori di CommandBehavior.Sends the CommandText to the Connection, and builds a SqlDataReader using one of the CommandBehavior values.

Si applica a

Vedi anche