SqlCommand 類別

定義

表示要對 SQL Server 資料庫執行的 Transact-SQL 陳述式或預存程序。 此類別無法獲得繼承。

public ref class SqlCommand sealed : System::Data::Common::DbCommand, ICloneable
public ref class SqlCommand sealed : System::Data::Common::DbCommand
public ref class SqlCommand sealed : System::ComponentModel::Component, ICloneable, IDisposable, System::Data::IDbCommand
public sealed class SqlCommand : System.Data.Common.DbCommand, ICloneable
public sealed class SqlCommand : System.Data.Common.DbCommand
public sealed class SqlCommand : System.ComponentModel.Component, ICloneable, IDisposable, System.Data.IDbCommand
type SqlCommand = class
    inherit DbCommand
    interface ICloneable
type SqlCommand = class
    inherit DbCommand
type SqlCommand = class
    inherit Component
    interface IDbCommand
    interface IDisposable
    interface ICloneable
Public NotInheritable Class SqlCommand
Inherits DbCommand
Implements ICloneable
Public NotInheritable Class SqlCommand
Inherits DbCommand
Public NotInheritable Class SqlCommand
Inherits Component
Implements ICloneable, IDbCommand, IDisposable
繼承
SqlCommand
繼承
繼承
實作

範例

下列範例會建立 SqlConnectionSqlCommand 、 和 SqlDataReader 。 此範例會讀取資料,並將其寫入主控台。 最後,範例會關閉 SqlDataReader ,然後在 SqlConnection 結束程式碼區塊時關閉 Using

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

下列範例示範如何建立和執行不同類型的 SqlCommand 物件。

首先,您必須執行下列腳本來建立範例資料庫:

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

接下來,編譯並執行下列專案:

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

備註

建立 的 SqlCommand 實例時,讀取/寫入屬性會設定為其初始值。 如需這些值的清單,請參閱建 SqlCommand 構函式。

SqlCommand具有下列方法,可在SQL Server資料庫上執行命令:

Item 說明
BeginExecuteNonQuery 起始這個 所 SqlCommand 描述之 Transact-SQL 語句或預存程式的非同步執行,通常會執行 INSERT、DELETE、UPDATE 和 SET 語句等命令。 每個 呼叫 BeginExecuteNonQuery 都必須與完成作業的呼叫 EndExecuteNonQuery 配對,通常是在不同的執行緒上。
BeginExecuteReader 起始 Transact-SQL 語句或預存程式的非同步執行,此語句或預存程式由這個 SqlCommand 所描述,並從伺服器擷取一或多個結果集。 每個 呼叫 BeginExecuteReader 都必須與完成作業的呼叫 EndExecuteReader 配對,通常是在不同的執行緒上。
BeginExecuteXmlReader 起始這個 SqlCommand 所描述之 Transact-SQL 陳述式或預存程序的非同步執行。 對 的每個呼叫 BeginExecuteXmlReader 都必須與 的 EndExecuteXmlReader 呼叫配對,該呼叫會完成作業,通常是在不同的執行緒上,並傳回 XmlReader 物件。
ExecuteReader 執行傳回資料列的命令。 為了提升效能, ExecuteReader 請使用 Transact-SQL sp_executesql 系統預存程式叫用命令。 因此, ExecuteReader 如果用來執行 Transact-SQL SET 語句之類的命令,可能沒有您想要的效果。
ExecuteNonQuery 執行 Transact-SQL INSERT、DELETE、UPDATE 和 SET 語句等命令。
ExecuteScalar 例如,從資料庫擷取單一值 (匯總值) 。
ExecuteXmlReader CommandText 傳送至 Connection 並建置 XmlReader 物件。

您可以重設 CommandText 屬性並重複使用 SqlCommand 物件。 不過,您必須先關閉 , SqlDataReader 才能執行新的或先前的命令。

SqlException如果 由執行 SqlCommand 的 方法產生 ,當嚴重性層級為 19 或更少時,仍 SqlConnection 會保持開啟狀態。 當嚴重性層級為 20 或更新時,伺服器通常會關閉 SqlConnection 。 但是,使用者可以再次開啟連線,然後繼續進行。

注意

.NET Framework Data Provider for SQL Server不支援無名稱,也稱為序數參數。

建構函式

SqlCommand()

初始化 SqlCommand 類別的新執行個體。

SqlCommand(String)

使用查詢的文字,初始化 SqlCommand 類別的新執行個體。

SqlCommand(String, SqlConnection)

使用查詢的文字和 SqlConnection 初始化 SqlCommand 類別的新執行個體。

SqlCommand(String, SqlConnection, SqlTransaction)

使用查詢的文字、SqlConnectionSqlTransaction,初始化 SqlCommand 類別的新執行個體。

SqlCommand(String, SqlConnection, SqlTransaction, SqlCommandColumnEncryptionSetting)

使用指定的命令文字、連接、交易和加密設定,初始化 SqlCommand 類別的新執行個體。

屬性

CanRaiseEvents

取得值,指出元件是否能引發事件。

(繼承來源 Component)
ColumnEncryptionSetting

取得或設定這個命令的資料行加密設定。

CommandText

取得或設定要在資料來源執行的 Transact-SQL 陳述式、資料表名稱或預存程序。

CommandTimeout

取得或設定結束執行命令的嘗試並產生錯誤之前的等待時間 (以秒為單位)。

CommandType

取得或設定值,其表示解譯 CommandText 屬性的方式。

Connection

取得或設定 SqlCommand 的這個執行個體所使用的 SqlConnection

Container

取得包含 IContainerComponent

(繼承來源 Component)
DbConnection

取得或設定這個 DbConnection 所使用的 DbCommand

(繼承來源 DbCommand)
DbParameterCollection

取得 DbParameter 物件的集合。

(繼承來源 DbCommand)
DbTransaction

取得或設定 DbTransaction,此 DbCommand 物件會在其中執行。

(繼承來源 DbCommand)
DesignMode

取得值,指出 Component 目前是否處於設計模式。

(繼承來源 Component)
DesignTimeVisible

取得或設定值,指出命令物件是否應該在 Windows Form 設計工具控制項中顯示。

Events

取得附加在這個 Component 上的事件處理常式清單。

(繼承來源 Component)
Notification

取得或設定值,其指定繫結至這個命令的 SqlNotificationRequest 物件。

NotificationAutoEnlist

取得或設定值,指出應用程式是否應該從通用 SqlDependency 物件自動接收查詢通知。

Parameters

取得 SqlParameterCollection

Site

取得或設定 ComponentISite

(繼承來源 Component)
Transaction

取得或設定在其中執行 SqlTransactionSqlCommand

UpdatedRowSource

取得或設定當由 DbDataAdapterUpdate 方法使用命令結果時,如何套用至 DataRow

方法

BeginExecuteNonQuery()

起始這個 SqlCommand 所描述之 Transact-SQL 陳述式或預存程序的非同步執行。

BeginExecuteNonQuery(AsyncCallback, Object)

如果已有回呼程序和狀態資訊,會啟始 Transact-SQL 陳述式或此 SqlCommand 所描述預存程序的非同步執行。

BeginExecuteReader()

起始這個 SqlCommand 所描述之 Transact-SQL 陳述式或預存程序的非同步執行,並從伺服器擷取一或多個結果集。

BeginExecuteReader(AsyncCallback, Object)

指定回呼程序和狀態資訊時,啟始這個 SqlCommand 所描述之 Transact-SQL 陳述式或預存程序的非同步執行,並且從伺服器擷取一或多個結果集。

BeginExecuteReader(AsyncCallback, Object, CommandBehavior)

指定回呼程序和狀態資訊時,使用其中一個 CommandBehavior 值,起始這個 SqlCommand 所描述之 Transact-SQL 陳述式或預存程序的非同步執行,並從伺服器擷取一或多個結果集。

BeginExecuteReader(CommandBehavior)

藉由使用其中一個 CommandBehavior 值,起始這個 SqlCommand 所描述之 Transact-SQL 陳述式或預存程序的非同步執行。

BeginExecuteXmlReader()

啟始這個 SqlCommand 所描述之 Transact-SQL 陳述式或預存程序的非同步執行,並傳回結果做為 XmlReader 物件。

BeginExecuteXmlReader(AsyncCallback, Object)

使用回呼程序,啟始這個 SqlCommand 所描述之 Transact-SQL 陳述式或預存程序的非同步執行,並傳回結果做為 XmlReader 物件。

Cancel()

嘗試取消 SqlCommand 的執行。

Clone()

建立新的 SqlCommand 物件,這個物件是目前執行個體的複本。

CreateDbParameter()

建立 DbParameter 物件的新執行個體。

(繼承來源 DbCommand)
CreateObjRef(Type)

建立包含所有相關資訊的物件,這些資訊是產生用來與遠端物件通訊的所需 Proxy。

(繼承來源 MarshalByRefObject)
CreateParameter()

建立 SqlParameter 物件的新執行個體。

Dispose()

執行與釋放 (Free)、釋放 (Release) 或重設 Unmanaged 資源相關聯之應用程式定義的工作。

(繼承來源 DbCommand)
Dispose()

釋放 Component 所使用的所有資源。

(繼承來源 Component)
Dispose(Boolean)

釋放 DbCommand 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

(繼承來源 DbCommand)
Dispose(Boolean)

釋放 Component 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

(繼承來源 Component)
DisposeAsync()

非同步地處置命令物件。

(繼承來源 DbCommand)
EndExecuteNonQuery(IAsyncResult)

完成 Transact-SQL 陳述式的非同步執行。

EndExecuteReader(IAsyncResult)

完成 Transact-SQL 陳述式的非同步執行,傳回要求的 SqlDataReader

EndExecuteXmlReader(IAsyncResult)

完成 Transact-SQL 陳述式的非同步執行,以 XML 傳回要求的資料。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
ExecuteDbDataReader(CommandBehavior)

針對其連接執行命令,傳 DbDataReader 回可用來存取結果的 。

(繼承來源 DbCommand)
ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken)

提供者應該實作這個方法,以提供 ExecuteReader 多載的非預設實作。

預設實作會叫用同步ExecuteReader()方法,並傳回完成的工作,封鎖呼叫的執行緒。 如果傳遞一個已經被取消的取消語彙基元,預設實作會傳回已取消的工作。 ExecuteReader 擲回的例外狀況會透過傳回的 Task Exception 屬性來傳送。

這個方法會接受可以用來要求提早取消作業的取消語彙基元。 實作可以忽略這項要求。

(繼承來源 DbCommand)
ExecuteNonQuery()

針對連接執行 Transact-SQL 陳述式,並傳回受影響的資料列數目。

ExecuteNonQueryAsync()

非同步 ExecuteNonQuery() 版本的 ,它會對其連線物件執行命令,並傳回受影響的資料列數目。

以 CancellationToken.None 叫用 ExecuteNonQueryAsync(CancellationToken)

(繼承來源 DbCommand)
ExecuteNonQueryAsync(CancellationToken)

ExecuteNonQuery() 非同步版本,它會針對連接執行 Transact-SQL 語句,並傳回受影響的資料列數目。 取消語彙基元可用於要求在命令逾時之前捨棄作業。 例外狀況將經由傳回的 Task 物件回報。

ExecuteNonQueryAsync(CancellationToken)

這是 ExecuteNonQuery() 的非同步版本。 提供者應該覆寫為適當的實作。 可以選擇性地接受忽略語彙基元。

預設實作會叫用同步ExecuteNonQuery()方法,並傳回完成的工作,封鎖呼叫的執行緒。 如果傳遞一個已經被取消的取消語彙基元,預設實作會傳回已取消的工作。 ExecuteNonQuery() 擲回的例外狀況會透過傳回的工作例外狀況屬性來傳送。

在傳回的工作完成之前,不叫用 DbCommand 物件的其他方法及屬性。

(繼承來源 DbCommand)
ExecuteReader()

CommandText 傳送至 Connection,並建置 SqlDataReader

ExecuteReader(CommandBehavior)

CommandText 傳送至 Connection,並使用其中一個 CommandBehavior 值來建置 SqlDataReader

ExecuteReaderAsync()

非同步版本的 ExecuteReader(),這個版本會將 CommandText 傳送至 Connection,並建置 SqlDataReader。 例外狀況將經由傳回的 Task 物件回報。

ExecuteReaderAsync()

非同步 ExecuteReader 版本的 ,它會對其連線執行命令,並 DbDataReader 傳回可用來存取結果的 。

以 CancellationToken.None 叫用 ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken)

(繼承來源 DbCommand)
ExecuteReaderAsync(CancellationToken)

非同步版本的 ExecuteReader(),這個版本會將 CommandText 傳送至 Connection,並建置 SqlDataReader

取消語彙基元可用於要求在命令逾時之前捨棄作業。 例外狀況將經由傳回的 Task 物件回報。

ExecuteReaderAsync(CancellationToken)

非同步 ExecuteReader 版本的 ,它會對其連線執行命令,並 DbDataReader 傳回可用來存取結果的 。

叫用 ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken)

(繼承來源 DbCommand)
ExecuteReaderAsync(CommandBehavior)

非同步版本的 ExecuteReader(CommandBehavior),這個版本會將 CommandText 傳送至 Connection,並建置 SqlDataReader。 例外狀況將經由傳回的 Task 物件回報。

ExecuteReaderAsync(CommandBehavior)

非同步 ExecuteReader 版本的 ,它會對其連線執行命令,並 DbDataReader 傳回可用來存取結果的 。

叫用 ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken)

(繼承來源 DbCommand)
ExecuteReaderAsync(CommandBehavior, CancellationToken)

非同步版本的 ExecuteReader(CommandBehavior),這個版本會將 CommandText 傳送至 Connection,並建置 SqlDataReader

取消語彙基元可用於要求在命令逾時之前捨棄作業。 例外狀況將經由傳回的 Task 物件回報。

ExecuteReaderAsync(CommandBehavior, CancellationToken)

叫用 ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken)

(繼承來源 DbCommand)
ExecuteScalar()

執行查詢,並傳回查詢所傳回之結果集中第一個資料列的第一個資料行。 忽略其他資料行或資料列。

ExecuteScalarAsync()

ExecuteScalar() 非同步版本,它會執行 命令,並傳回第一個傳回結果集中第一個資料列的第一個資料行。 所有其他資料行、資料列和結果集都會被忽略。

以 CancellationToken.None 叫用 ExecuteScalarAsync(CancellationToken)

(繼承來源 DbCommand)
ExecuteScalarAsync(CancellationToken)

ExecuteScalar() 的非同步版本,該版本會執行非同步查詢並傳回查詢所傳回的結果集中第一個資料列的第一個資料行。 忽略其他資料行或資料列。

取消語彙基元可用於要求在命令逾時之前捨棄作業。 例外狀況將經由傳回的 Task 物件回報。

ExecuteScalarAsync(CancellationToken)

這是 ExecuteScalar() 的非同步版本。 提供者應該覆寫為適當的實作。 可以選擇性地接受忽略語彙基元。

預設實作會叫用同步ExecuteScalar()方法,並傳回完成的工作,封鎖呼叫的執行緒。 如果傳遞一個已經被取消的取消語彙基元,預設實作會傳回已取消的工作。 ExecuteScalar 擲回的例外狀況會透過傳回的工作例外狀況屬性來傳送。

在傳回的工作完成之前,不叫用 DbCommand 物件的其他方法及屬性。

(繼承來源 DbCommand)
ExecuteXmlReader()

CommandText 傳送至 Connection 並建置 XmlReader 物件。

ExecuteXmlReaderAsync()

非同步版本的 ExecuteXmlReader(),這個版本會將 CommandText 傳送至 Connection 並建置 XmlReader 物件。

例外狀況將經由傳回的 Task 物件回報。

ExecuteXmlReaderAsync(CancellationToken)

非同步版本的 ExecuteXmlReader(),這個版本會將 CommandText 傳送至 Connection 並建置 XmlReader 物件。

取消語彙基元可用於要求在命令逾時之前捨棄作業。 例外狀況將經由傳回的 Task 物件回報。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetLifetimeService()
已淘汰.

擷取控制這個執行個體存留期 (Lifetime) 原則的目前存留期服務物件。

(繼承來源 MarshalByRefObject)
GetService(Type)

傳回表示 Component 或其 Container 所提供之服務的物件。

(繼承來源 Component)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
InitializeLifetimeService()
已淘汰.

取得存留期服務物件,以控制這個執行個體的存留期原則。

(繼承來源 MarshalByRefObject)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
MemberwiseClone(Boolean)

建立目前 MarshalByRefObject 物件的淺層複本。

(繼承來源 MarshalByRefObject)
Prepare()

在 SQL Server 的執行個體上建立命令的預備版本。

PrepareAsync(CancellationToken)

在資料來源上非同步地建立預先準備 (或預先編譯) 版本的命令。

(繼承來源 DbCommand)
ResetCommandTimeout()

重設 CommandTimeout 屬性為其預設值。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
ToString()

傳回任何包含 Component 名稱的 String。 不應覆寫此方法。

(繼承來源 Component)

事件

Disposed

Dispose() 方法的呼叫處置元件時,就會發生。

(繼承來源 Component)
StatementCompleted

發生於 Transact-SQL 陳述式執行完畢時。

明確介面實作

ICloneable.Clone()

建立新的 SqlCommand 物件,這個物件是目前執行個體的複本。

IDbCommand.Connection

取得或設定 IDbCommand 的這個執行個體所使用的 IDbConnection

(繼承來源 DbCommand)
IDbCommand.CreateParameter()

建立 SqlParameter 物件的新執行個體。

IDbCommand.CreateParameter()

建立 IDbDataParameter 物件的新執行個體。

(繼承來源 DbCommand)
IDbCommand.ExecuteReader()

CommandText 傳送至 Connection,並建置 SqlDataReader

IDbCommand.ExecuteReader()

針對 Connection 執行 CommandText,並建置 IDataReader

(繼承來源 DbCommand)
IDbCommand.ExecuteReader(CommandBehavior)

CommandText 傳送至 Connection,並使用其中一個 CommandBehavior 值來建置 SqlDataReader

IDbCommand.ExecuteReader(CommandBehavior)

針對 Connection 執行 CommandText,並使用其中一個 CommandBehavior 值來建置 IDataReader

(繼承來源 DbCommand)
IDbCommand.Parameters

取得 IDataParameterCollection

(繼承來源 DbCommand)
IDbCommand.Transaction

取得或設定 DbTransaction,此 DbCommand 物件會在其中執行。

(繼承來源 DbCommand)

適用於

另請參閱