SqlCommand SqlCommand SqlCommand SqlCommand Class

Definicja

Reprezentuje instrukcję języka Transact-SQL lub procedurę przechowywaną do wykonania względem bazy danych SQL Server.Represents a Transact-SQL statement or stored procedure to execute against a SQL Server database. Klasa ta nie może być dziedziczona.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
Dziedziczenie
Implementuje

Przykłady

Poniższy przykład tworzy SqlConnection SqlCommand, a i SqlDataReader.The following example creates a SqlConnection, a SqlCommand, and a SqlDataReader. Przykład odczytuje dane, zapisując je w konsoli programu.The example reads through the data, writing it to the console. Na koniec przykład zamyka SqlDataReader program, a SqlConnection następnie gdy opuszcza Using bloki kodu.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

Poniższy przykład pokazuje, jak tworzyć i wykonywać różne typy obiektów SqlCommand.The following sample shows how to create and execute different types of SqlCommand objects.

Najpierw należy utworzyć przykładową bazę danych, wykonując następujący skrypt: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  

Następnie Skompiluj i wykonaj następujące czynności: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");  
   }  
}  

Uwagi

Po utworzeniu wystąpienia programu SqlCommand właściwości odczytu/zapisu są ustawiane na wartości początkowe.When an instance of SqlCommand is created, the read/write properties are set to their initial values. Aby uzyskać listę tych wartości, zobacz SqlCommand Konstruktor.For a list of these values, see the SqlCommand constructor.

SqlCommandoferuje następujące metody wykonywania poleceń w SQL Serverej bazie danych:SqlCommand features the following methods for executing commands at a SQL Server database:

ElementItem OpisDescription
BeginExecuteNonQuery Inicjuje asynchroniczne wykonanie instrukcji języka Transact-SQL lub procedury składowanej, która jest opisana w tym SqlCommandartykule, zazwyczaj wykonuje polecenia takie jak INSERT, DELETE, Update i 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. Każde wywołanie BeginExecuteNonQuery musi być sparowane z EndExecuteNonQuery wywołaniem, które kończy operację, zazwyczaj w osobnym wątku.Each call to BeginExecuteNonQuery must be paired with a call to EndExecuteNonQuery which finishes the operation, typically on a separate thread.
BeginExecuteReader Inicjuje asynchroniczne wykonywanie instrukcji języka Transact-SQL lub procedury składowanej opisanej w tym SqlCommand artykule i pobiera jeden lub więcej zestawów wyników z serwera.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. Każde wywołanie BeginExecuteReader musi być sparowane z EndExecuteReader wywołaniem, które kończy operację, zazwyczaj w osobnym wątku.Each call to BeginExecuteReader must be paired with a call to EndExecuteReader which finishes the operation, typically on a separate thread.
BeginExecuteXmlReader Inicjuje asynchroniczne wykonanie instrukcji języka Transact-SQL lub procedury składowanej opisanej w tym SqlCommandtemacie.Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this SqlCommand. Każde wywołanie BeginExecuteXmlReader musi być sparowane z EndExecuteXmlReaderwywołaniem, które kończy operację, zazwyczaj w osobnym XmlReader wątku i zwraca obiekt.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 Wykonuje polecenia, które zwracają wiersze.Executes commands that return rows. W celu zwiększenia wydajności ExecuteReader program wywołuje polecenia za pomocą procedury składowanej Transact-SQL. sp_executesqlFor increased performance, ExecuteReader invokes commands using the Transact-SQL sp_executesql system stored procedure. W związku z tym możeniemiećefektu,którymabyćużywanydowykonywaniapoleceńtakichjakinstrukcjeSETjęzykaTransact-SQL.ExecuteReaderTherefore, ExecuteReader might not have the effect that you want if used to execute commands such as Transact-SQL SET statements.
ExecuteNonQuery Wykonuje polecenia, takie jak Transact-SQL INSERT, DELETE, UPDATE i SET.Executes commands such as Transact-SQL INSERT, DELETE, UPDATE, and SET statements.
ExecuteScalar Pobiera pojedynczą wartość (na przykład wartość zagregowaną) z bazy danych.Retrieves a single value (for example, an aggregate value) from a database.
ExecuteXmlReader CommandText Wysyła XmlReader do iConnection kompiluje obiekt.Sends the CommandText to the Connection and builds an XmlReader object.

Możesz zresetować CommandText Właściwość i SqlCommand ponownie użyć obiektu.You can reset the CommandText property and reuse the SqlCommand object. Należy jednak zamknąć SqlDataReader , aby można było wykonać nowe lub poprzednie polecenie.However, you must close the SqlDataReader before you can execute a new or previous command.

Jeśli jest generowany przez metodę SqlCommandwykonującą, SqlConnection pozostaje otwarty, gdy poziom ważności wynosi 19 lub mniej. SqlExceptionIf a SqlException is generated by the method executing a SqlCommand, the SqlConnection remains open when the severity level is 19 or less. Gdy poziom ważności wynosi 20 lub więcej, serwer zazwyczaj zamyka SqlConnection.When the severity level is 20 or greater, the server ordinarily closes the SqlConnection. Użytkownik może jednak ponownie otworzyć połączenie i kontynuować pracę.However, the user can reopen the connection and continue.

Uwaga

Pustego, nazywane również numerem porządkowym, nie są obsługiwane przez Dostawca danych .NET Framework dla SQL Server.Nameless, also called ordinal, parameters are not supported by the .NET Framework Data Provider for SQL Server.

Konstruktory

SqlCommand() SqlCommand() SqlCommand() SqlCommand()

Inicjuje nowe wystąpienie klasy SqlCommand klasy.Initializes a new instance of the SqlCommand class.

SqlCommand(String) SqlCommand(String) SqlCommand(String) SqlCommand(String)

Inicjuje nowe wystąpienie SqlCommand klasy z tekstem zapytania.Initializes a new instance of the SqlCommand class with the text of the query.

SqlCommand(String, SqlConnection) SqlCommand(String, SqlConnection) SqlCommand(String, SqlConnection) SqlCommand(String, SqlConnection)

Inicjuje nowe wystąpienie SqlCommand klasy z tekstem zapytania SqlConnectioni.Initializes a new instance of the SqlCommand class with the text of the query and a SqlConnection.

SqlCommand(String, SqlConnection, SqlTransaction) SqlCommand(String, SqlConnection, SqlTransaction) SqlCommand(String, SqlConnection, SqlTransaction) SqlCommand(String, SqlConnection, SqlTransaction)

Inicjuje nowe wystąpienie SqlCommand klasy z tekstem zapytania SqlConnection, a i 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) SqlCommand(String, SqlConnection, SqlTransaction, SqlCommandColumnEncryptionSetting) SqlCommand(String, SqlConnection, SqlTransaction, SqlCommandColumnEncryptionSetting) SqlCommand(String, SqlConnection, SqlTransaction, SqlCommandColumnEncryptionSetting)

Inicjuje nowe wystąpienie SqlCommand klasy z określonym ustawieniem tekst polecenia, połączenie, transakcja i szyfrowanie.Initializes a new instance of the SqlCommand class with specified command text, connection, transaction, and encryption setting.

Właściwości

CanRaiseEvents CanRaiseEvents CanRaiseEvents CanRaiseEvents

Pobiera wartość wskazującą, czy składnik może zgłosić zdarzenie.Gets a value indicating whether the component can raise an event.

(Inherited from Component)
ColumnEncryptionSetting ColumnEncryptionSetting ColumnEncryptionSetting ColumnEncryptionSetting

Pobiera lub ustawia ustawienie szyfrowania kolumn dla tego polecenia.Gets or sets the column encryption setting for this command.

CommandText CommandText CommandText CommandText

Pobiera lub ustawia instrukcję języka Transact-SQL, nazwę tabeli lub procedurę przechowywaną do wykonania w źródle danych.Gets or sets the Transact-SQL statement, table name or stored procedure to execute at the data source.

CommandTimeout CommandTimeout CommandTimeout CommandTimeout

Pobiera lub ustawia czas oczekiwania przed zakończeniem próby wykonania polecenia i wygenerowaniem błędu.Gets or sets the wait time before terminating the attempt to execute a command and generating an error.

CommandType CommandType CommandType CommandType

Pobiera lub ustawia wartość wskazującą sposób CommandText interpretacji właściwości.Gets or sets a value indicating how the CommandText property is to be interpreted.

Connection Connection Connection Connection

Pobiera lub ustawia SqlConnection używane przez to wystąpienie SqlCommandelementu.Gets or sets the SqlConnection used by this instance of the SqlCommand.

Container Container Container Container

Pobiera, który zawiera Component. IContainerGets the IContainer that contains the Component.

(Inherited from Component)
DesignMode DesignMode DesignMode DesignMode

Pobiera wartość wskazującą, czy Component jest aktualnie w trybie projektowania.Gets a value that indicates whether the Component is currently in design mode.

(Inherited from Component)
DesignTimeVisible DesignTimeVisible DesignTimeVisible DesignTimeVisible

Pobiera lub ustawia wartość wskazującą, czy obiekt polecenia powinien być widoczny w kontrolce projektanta formularzy systemu Windows.Gets or sets a value indicating whether the command object should be visible in a Windows Form Designer control.

Events Events Events Events

Pobiera listę programów obsługi zdarzeń, które są dołączone do tego Componentelementu.Gets the list of event handlers that are attached to this Component.

(Inherited from Component)
Notification Notification Notification Notification

Pobiera lub ustawia wartość SqlNotificationRequest określającą obiekt powiązany z tym poleceniem.Gets or sets a value that specifies the SqlNotificationRequest object bound to this command.

NotificationAutoEnlist NotificationAutoEnlist NotificationAutoEnlist NotificationAutoEnlist

Pobiera lub ustawia wartość wskazującą, czy aplikacja powinna automatycznie odbierać powiadomienia o zapytaniach ze SqlDependency wspólnego obiektu.Gets or sets a value indicating whether the application should automatically receive query notifications from a common SqlDependency object.

Parameters Parameters Parameters Parameters

SqlParameterCollectionPobiera.Gets the SqlParameterCollection.

Site Site Site Site

Pobiera lub ustawia wartość ISite. ComponentGets or sets the ISite of the Component.

(Inherited from Component)
Transaction Transaction Transaction Transaction

Pobiera lub ustawia, SqlTransaction w ramach SqlCommand którego wykonujesz.Gets or sets the SqlTransaction within which the SqlCommand executes.

UpdatedRowSource UpdatedRowSource UpdatedRowSource UpdatedRowSource

Pobiera lub ustawia sposób, w jaki wyniki poleceń są DataRow stosowane do obiektu, który jest używany przez DbDataAdaptermetodę Update obiektu.Gets or sets how command results are applied to the DataRow when used by the Update method of the DbDataAdapter.

Metody

BeginExecuteNonQuery() BeginExecuteNonQuery() BeginExecuteNonQuery() BeginExecuteNonQuery()

Inicjuje asynchroniczne wykonanie instrukcji języka Transact-SQL lub procedury składowanej opisanej w tym SqlCommandtemacie.Initiates the asynchronous execution of the Transact-SQL statement or stored procedure that is described by this SqlCommand.

BeginExecuteNonQuery(AsyncCallback, Object) BeginExecuteNonQuery(AsyncCallback, Object) BeginExecuteNonQuery(AsyncCallback, Object) BeginExecuteNonQuery(AsyncCallback, Object)

Inicjuje asynchroniczne wykonywanie instrukcji języka Transact-SQL lub procedury składowanej opisanej w tym SqlCommandartykule, na podstawie procedury wywołania zwrotnego i informacji o stanie.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() BeginExecuteReader() BeginExecuteReader() BeginExecuteReader()

Inicjuje asynchroniczne wykonywanie instrukcji języka Transact-SQL lub procedury składowanej opisanej w tym SqlCommandartykule i pobiera jeden lub więcej zestawów wyników z serwera.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) BeginExecuteReader(AsyncCallback, Object) BeginExecuteReader(AsyncCallback, Object) BeginExecuteReader(AsyncCallback, Object)

Inicjuje asynchroniczne wykonywanie instrukcji języka Transact-SQL lub procedury składowanej opisanej w tym SqlCommand artykule i pobiera jeden lub więcej zestawów wyników z serwera, na podstawie procedury wywołania zwrotnego i informacji o stanie.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) BeginExecuteReader(AsyncCallback, Object, CommandBehavior) BeginExecuteReader(AsyncCallback, Object, CommandBehavior) BeginExecuteReader(AsyncCallback, Object, CommandBehavior)

Inicjuje asynchroniczne wykonywanie instrukcji języka Transact-SQL lub procedury składowanej opisanej w tym SqlCommandartykule przy użyciu jednej CommandBehavior z wartości oraz pobranie jednego lub większej liczby zestawów wyników z serwera, na podstawie procedury wywołania zwrotnego i stanu zawartych.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) BeginExecuteReader(CommandBehavior) BeginExecuteReader(CommandBehavior) BeginExecuteReader(CommandBehavior)

Inicjuje asynchroniczne wykonywanie instrukcji języka Transact-SQL lub procedury składowanej, która jest opisana w tym SqlCommand artykule przy użyciu jednej CommandBehavior z wartości.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() BeginExecuteXmlReader() BeginExecuteXmlReader() BeginExecuteXmlReader()

Inicjuje asynchroniczne wykonanie instrukcji języka Transact-SQL lub procedury składowanej, która jest opisana przez ten SqlCommand element i zwraca wyniki XmlReader jako obiekt.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) BeginExecuteXmlReader(AsyncCallback, Object) BeginExecuteXmlReader(AsyncCallback, Object) BeginExecuteXmlReader(AsyncCallback, Object)

Inicjuje asynchroniczne wykonanie instrukcji języka Transact-SQL lub procedury składowanej, która jest opisana przez ten SqlCommand element i zwraca wyniki XmlReader jako obiekt, za pomocą procedury wywołania zwrotnego.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() Cancel() Cancel() Cancel()

Próbuje anulować wykonanie SqlCommand.Tries to cancel the execution of a SqlCommand.

Clone() Clone() Clone() Clone()

Tworzy nowy SqlCommand obiekt, który jest kopią bieżącego wystąpienia.Creates a new SqlCommand object that is a copy of the current instance.

CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type)

Tworzy obiekt, który zawiera wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikacji z obiektem zdalnym.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
CreateParameter() CreateParameter() CreateParameter() CreateParameter()

Tworzy nowe wystąpienie SqlParameter obiektu.Creates a new instance of a SqlParameter object.

Dispose() Dispose() Dispose() Dispose()

Zwalnia wszystkie zasoby używane przez Componentprogram.Releases all resources used by the Component.

(Inherited from Component)
Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Zwalnia niezarządzane zasoby używane przez Component program i opcjonalnie zwalnia zarządzane zasoby.Releases the unmanaged resources used by the Component and optionally releases the managed resources.

(Inherited from Component)
EndExecuteNonQuery(IAsyncResult) EndExecuteNonQuery(IAsyncResult) EndExecuteNonQuery(IAsyncResult) EndExecuteNonQuery(IAsyncResult)

Kończy asynchroniczne wykonywanie instrukcji języka Transact-SQL.Finishes asynchronous execution of a Transact-SQL statement.

EndExecuteReader(IAsyncResult) EndExecuteReader(IAsyncResult) EndExecuteReader(IAsyncResult) EndExecuteReader(IAsyncResult)

Kończy asynchroniczne wykonywanie instrukcji języka Transact-SQL, zwracając żądaną SqlDataReaderwartość.Finishes asynchronous execution of a Transact-SQL statement, returning the requested SqlDataReader.

EndExecuteXmlReader(IAsyncResult) EndExecuteXmlReader(IAsyncResult) EndExecuteXmlReader(IAsyncResult) EndExecuteXmlReader(IAsyncResult)

Kończy asynchroniczne wykonywanie instrukcji języka Transact-SQL, zwracając żądane dane jako XML.Finishes asynchronous execution of a Transact-SQL statement, returning the requested data as XML.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

(Inherited from Object)
ExecuteNonQuery() ExecuteNonQuery() ExecuteNonQuery() ExecuteNonQuery()

Wykonuje instrukcję języka Transact-SQL względem połączenia i zwraca liczbę wierszy, których to dotyczy.Executes a Transact-SQL statement against the connection and returns the number of rows affected.

ExecuteNonQueryAsync(CancellationToken) ExecuteNonQueryAsync(CancellationToken) ExecuteNonQueryAsync(CancellationToken) ExecuteNonQueryAsync(CancellationToken)

Asynchroniczna wersja ExecuteNonQuery(), która Transact-SQLTransact-SQL wykonuje instrukcję względem połączenia i zwraca liczbę wierszy, których to dotyczy.An asynchronous version of ExecuteNonQuery(), which executes a Transact-SQLTransact-SQL statement against the connection and returns the number of rows affected. Tokenu anulowania można użyć do żądania, aby operacja została porzucona przed upływem limitu czasu polecenia.The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Wyjątki będą raportowane za pośrednictwem zwracanego obiektu zadania.Exceptions will be reported via the returned Task object.

ExecuteReader() ExecuteReader() ExecuteReader() ExecuteReader()

CommandText Wysyła SqlDataReaderdo ikompiluje.ConnectionSends the CommandText to the Connection and builds a SqlDataReader.

ExecuteReader(CommandBehavior) ExecuteReader(CommandBehavior) ExecuteReader(CommandBehavior) ExecuteReader(CommandBehavior)

Wysyła CommandText SqlDataReader do i kompiluje przy użyciu jednej z CommandBehavior wartości. ConnectionSends the CommandText to the Connection, and builds a SqlDataReader using one of the CommandBehavior values.

ExecuteReaderAsync() ExecuteReaderAsync() ExecuteReaderAsync() ExecuteReaderAsync()

Asynchroniczna wersja programu ExecuteReader(), która CommandText wysyła SqlDataReaderdo Connection i kompiluje.An asynchronous version of ExecuteReader(), which sends the CommandText to the Connection and builds a SqlDataReader. Wyjątki będą raportowane za pośrednictwem zwracanego obiektu zadania.Exceptions will be reported via the returned Task object.

ExecuteReaderAsync(CancellationToken) ExecuteReaderAsync(CancellationToken) ExecuteReaderAsync(CancellationToken) ExecuteReaderAsync(CancellationToken)

Asynchroniczna wersja programu ExecuteReader(), która CommandText wysyła SqlDataReaderdo Connection i kompiluje.An asynchronous version of ExecuteReader(), which sends the CommandText to the Connection and builds a SqlDataReader.

Tokenu anulowania można użyć do żądania, aby operacja została porzucona przed upływem limitu czasu polecenia.The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Wyjątki będą raportowane za pośrednictwem zwracanego obiektu zadania.Exceptions will be reported via the returned Task object.

ExecuteReaderAsync(CommandBehavior) ExecuteReaderAsync(CommandBehavior) ExecuteReaderAsync(CommandBehavior) ExecuteReaderAsync(CommandBehavior)

Asynchroniczna wersja programu ExecuteReader(CommandBehavior), która CommandText wysyła do Connectioni kompiluje SqlDataReader.An asynchronous version of ExecuteReader(CommandBehavior), which sends the CommandText to the Connection, and builds a SqlDataReader. Wyjątki będą raportowane za pośrednictwem zwracanego obiektu zadania.Exceptions will be reported via the returned Task object.

ExecuteReaderAsync(CommandBehavior, CancellationToken) ExecuteReaderAsync(CommandBehavior, CancellationToken) ExecuteReaderAsync(CommandBehavior, CancellationToken) ExecuteReaderAsync(CommandBehavior, CancellationToken)

Asynchroniczna wersja programu ExecuteReader(CommandBehavior), która CommandText wysyła do Connectioni kompilujeSqlDataReaderAn asynchronous version of ExecuteReader(CommandBehavior), which sends the CommandText to the Connection, and builds a SqlDataReader

Tokenu anulowania można użyć do żądania, aby operacja została porzucona przed upływem limitu czasu polecenia.The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Wyjątki będą raportowane za pośrednictwem zwracanego obiektu zadania.Exceptions will be reported via the returned Task object.

ExecuteScalar() ExecuteScalar() ExecuteScalar() ExecuteScalar()

Wykonuje zapytanie i zwraca pierwszą kolumnę pierwszego wiersza w zestawie wyników zwróconym przez zapytanie.Executes the query, and returns the first column of the first row in the result set returned by the query. Dodatkowe kolumny lub wiersze są ignorowane.Additional columns or rows are ignored.

ExecuteScalarAsync(CancellationToken) ExecuteScalarAsync(CancellationToken) ExecuteScalarAsync(CancellationToken) ExecuteScalarAsync(CancellationToken)

Asynchroniczna wersja ExecuteScalar(), która wykonuje zapytanie asynchronicznie i zwraca pierwszą kolumnę pierwszego wiersza w zestawie wyników zwróconym przez zapytanie.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. Dodatkowe kolumny lub wiersze są ignorowane.Additional columns or rows are ignored.

Tokenu anulowania można użyć do żądania, aby operacja została porzucona przed upływem limitu czasu polecenia.The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Wyjątki będą raportowane za pośrednictwem zwracanego obiektu zadania.Exceptions will be reported via the returned Task object.

ExecuteXmlReader() ExecuteXmlReader() ExecuteXmlReader() ExecuteXmlReader()

CommandText Wysyła XmlReader do iConnection kompiluje obiekt.Sends the CommandText to the Connection and builds an XmlReader object.

ExecuteXmlReaderAsync() ExecuteXmlReaderAsync() ExecuteXmlReaderAsync() ExecuteXmlReaderAsync()

Asynchroniczna wersja programu ExecuteXmlReader(), która CommandText wysyła XmlReader do Connection i kompiluje obiekt.An asynchronous version of ExecuteXmlReader(), which sends the CommandText to the Connection and builds an XmlReader object.

Wyjątki będą raportowane za pośrednictwem zwracanego obiektu zadania.Exceptions will be reported via the returned Task object.

ExecuteXmlReaderAsync(CancellationToken) ExecuteXmlReaderAsync(CancellationToken) ExecuteXmlReaderAsync(CancellationToken) ExecuteXmlReaderAsync(CancellationToken)

Asynchroniczna wersja programu ExecuteXmlReader(), która CommandText wysyła XmlReader do Connection i kompiluje obiekt.An asynchronous version of ExecuteXmlReader(), which sends the CommandText to the Connection and builds an XmlReader object.

Tokenu anulowania można użyć do żądania, aby operacja została porzucona przed upływem limitu czasu polecenia.The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Wyjątki będą raportowane za pośrednictwem zwracanego obiektu zadania.Exceptions will be reported via the returned Task object.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Inherited from Object)
GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetService(Type) GetService(Type) GetService(Type) GetService(Type)

Zwraca obiekt, który reprezentuje usługę dostarczoną przez Component lub Containerprzez.Returns an object that represents a service provided by the Component or by its Container.

(Inherited from Component)
GetType() GetType() GetType() GetType()

Type Pobiera bieżące wystąpienie.Gets the Type of the current instance.

(Inherited from Object)
InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

Uzyskuje obiekt usługi istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia.Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Tworzy skróconą kopię bieżącego Objectelementu.Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

Tworzy skróconą kopię bieżącego MarshalByRefObject obiektu.Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
Prepare() Prepare() Prepare() Prepare()

Tworzy przygotowaną wersję polecenia w wystąpieniu SQL Server.Creates a prepared version of the command on an instance of SQL Server.

ResetCommandTimeout() ResetCommandTimeout() ResetCommandTimeout() ResetCommandTimeout()

Resetuje CommandTimeout właściwość do wartości domyślnej.Resets the CommandTimeout property to its default value.

ToString() ToString() ToString() ToString()

ComponentZwraca wartość String zawierającą nazwę (jeśli istnieje).Returns a String containing the name of the Component, if any. Ta metoda nie powinna być przesłaniana.This method should not be overridden.

(Inherited from Component)

Zdarzenia

Disposed Disposed Disposed Disposed

Występuje, gdy składnik zostanie usunięty przez wywołanie Dispose() metody.Occurs when the component is disposed by a call to the Dispose() method.

(Inherited from Component)
StatementCompleted StatementCompleted StatementCompleted StatementCompleted

Występuje po zakończeniu wykonywania instrukcji języka Transact-SQL.Occurs when the execution of a Transact-SQL statement completes.

Jawne implementacje interfejsu

ICloneable.Clone() ICloneable.Clone() ICloneable.Clone() ICloneable.Clone()

Tworzy nowy SqlCommand obiekt, który jest kopią bieżącego wystąpienia.Creates a new SqlCommand object that is a copy of the current instance.

IDbCommand.CreateParameter() IDbCommand.CreateParameter() IDbCommand.CreateParameter() IDbCommand.CreateParameter()

Tworzy nowe wystąpienie SqlParameter obiektu.Creates a new instance of a SqlParameter object.

IDbCommand.ExecuteReader() IDbCommand.ExecuteReader() IDbCommand.ExecuteReader() IDbCommand.ExecuteReader()

CommandText Wysyła SqlDataReaderdo ikompiluje.ConnectionSends the CommandText to the Connection, and builds a SqlDataReader.

IDbCommand.ExecuteReader(CommandBehavior) IDbCommand.ExecuteReader(CommandBehavior) IDbCommand.ExecuteReader(CommandBehavior) IDbCommand.ExecuteReader(CommandBehavior)

Wysyła CommandText SqlDataReader do i kompiluje przy użyciu jednej z CommandBehavior wartości. ConnectionSends the CommandText to the Connection, and builds a SqlDataReader using one of the CommandBehavior values.

Dotyczy

Zobacz też