SqlCommandとは? わかりやすく解説

SqlCommand イベント


SqlCommand クラス

SQL Server データベースに対して実行する Transact-SQL ステートメントまたはストアド プロシージャを表します。このクラスは継承できません。

名前空間: System.Data.SqlClient
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public NotInheritable Class
 SqlCommand
    Inherits DbCommand
    Implements ICloneable
public sealed class SqlCommand : DbCommand,
 ICloneable
public ref class SqlCommand sealed : public
 DbCommand, ICloneable
public final class SqlCommand extends DbCommand
 implements ICloneable
public final class SqlCommand extends
 DbCommand implements ICloneable
解説解説

SqlCommand のインスタンスを作成すると、読み書き可能なプロパティが初期値に設定されます。これらの初期値の一覧については、SqlCommand コンストラクタのトピックを参照してください。

SqlCommand には、SQL Server データベースでコマンドを実行するための、次のメソッドがあります。

項目

説明

BeginExecuteNonQuery

この SqlCommand によって定義された Transact-SQL ステートメントまたはストアド プロシージャの非同期実行を開始します。通常、INSERT、DELETE、UPDATE、SET ステートメントなどのコマンドが実行されます。BeginExecuteNonQuery は必ず EndExecuteNonQuery とペアで呼び出し、通常はスレッドごとに、操作を完了させる必要があります。

BeginExecuteReader

この SqlCommand によって定義された Transact-SQL ステートメントまたはストアド プロシージャの非同期実行を開始し、サーバーから 1 つまたは複数の結果を取得します。BeginExecuteReader は必ず EndExecuteReader とペアで呼び出し、通常はスレッドごとに、操作を完了させる必要があります。

BeginExecuteXmlReader

この SqlCommand によって定義された Transact-SQL ステートメントまたはストアド プロシージャの非同期実行を開始します。BeginExecuteXmlReader は EndExecuteXmlReader とペアで呼び出す必要があります。これによって、通常はスレッドごとに操作を完了し、XmlReader オブジェクトを取得できます。

ExecuteReader

行を返すコマンドを実行します。パフォーマンスを高めるために、ExecuteReader は Transact-SQL sp_executesql システム ストアド プロシージャを使用してコマンドを呼び出します。そのため、Transact-SQL SET ステートメントなどのコマンドの実行に ExecuteReader を使用すると、期待した効果が得られないことがあります。

ExecuteNonQuery

Transact-SQL の INSERT、DELELE、UPDATE、SET の各ステートメントなどのコマンドを実行します。

ExecuteScalar

データベースから単一の値 (集計値など) を取得します。

ExecuteXmlReader

CommandText を Connection に送信し、XmlReader オブジェクトを構築します。

CommandText プロパティをリセットして、SqlCommand オブジェクトを再利用できます。ただし、新規コマンドまたは以前のコマンドを実行する前に、SqlDataReader を閉じる必要があります。

SqlCommand を実行するメソッドが SqlException を生成した場合、重大度レベルが 19 以下のときは、SqlConnection は開いたままになります。重大度レベルが 20 以上のときは、通常、サーバーは SqlConnection を閉じます。ただし、ユーザーは接続を再び開いて、処理を継続できます。

使用例使用例

SqlConnection、SqlCommand、および SqlDataReader を作成する例を次に示します。この例では、データを読み取り、コンソールに出力します。最後に、この例では SqlDataReader を閉じてから、SqlConnection を閉じます。

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
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();
        SqlDataReader reader = command.ExecuteReader();
        try
        {
            while (reader.Read())
            {
                Console.WriteLine(String.Format("{0}, {1}",
                    reader[0], reader[1]));
            }
        }
        finally
        {
            // Always call Close when done reading.
            reader.Close();
        }
    }
}
継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Data.Common.DbCommand
        System.Data.SqlClient.SqlCommand
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

SqlCommand コンストラクタ ()

SqlCommand クラスの新しいインスタンスを初期化します。

名前空間: System.Data.SqlClient
アセンブリ: System.Data (system.data.dll 内)
構文構文

public SqlCommand ()
public:
SqlCommand ()
public SqlCommand ()
解説解説
使用例使用例

SqlCommand を作成し、その CommandTimeout プロパティを設定する例を次に示します。

Public Sub CreateSqlCommand()
    Dim command As New SqlCommand()
    command.CommandTimeout = 15
    command.CommandType = CommandType.Text
End Sub
public void CreateSqlCommand() 
{
   SqlCommand command = new SqlCommand();
   command.CommandTimeout = 15;
   command.CommandType = CommandType.Text;
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

SqlCommand コンストラクタ (String, SqlConnection, SqlTransaction)

クエリ テキスト、SqlConnection、および SqlTransaction を指定して、SqlCommand クラスの新しいインスタンスを初期化します。

名前空間: System.Data.SqlClient
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public Sub New ( _
    cmdText As String, _
    connection As SqlConnection, _
    transaction As SqlTransaction _
)
Dim cmdText As String
Dim connection As SqlConnection
Dim transaction As SqlTransaction

Dim instance As New SqlCommand(cmdText,
 connection, transaction)
public SqlCommand (
    string cmdText,
    SqlConnection connection,
    SqlTransaction transaction
)
public:
SqlCommand (
    String^ cmdText, 
    SqlConnection^ connection, 
    SqlTransaction^ transaction
)
public SqlCommand (
    String cmdText, 
    SqlConnection connection, 
    SqlTransaction transaction
)
public function SqlCommand (
    cmdText : String, 
    connection : SqlConnection, 
    transaction : SqlTransaction
)

パラメータ

cmdText

クエリ テキスト。

connection

SQL Server のインスタンスへの接続を表す SqlConnection。

transaction

SqlCommand の実行対象の SqlTransaction。

解説解説

SqlCommand のインスタンスの初期プロパティ値を次の表に示します。

プロパティ

初期値

CommandText

cmdText

CommandTimeout

30

CommandType

CommandType.Text

Connection

connection パラメータの値である新しい SqlConnection。

これらのパラメータの値は、関連するプロパティを設定することによって変更できます。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

SqlCommand コンストラクタ (String, SqlConnection)

クエリ テキストと SqlConnection を指定して、SqlCommand クラスの新しいインスタンスを初期化します。

名前空間: System.Data.SqlClient
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public Sub New ( _
    cmdText As String, _
    connection As SqlConnection _
)
Dim cmdText As String
Dim connection As SqlConnection

Dim instance As New SqlCommand(cmdText,
 connection)
public SqlCommand (
    string cmdText,
    SqlConnection connection
)
public:
SqlCommand (
    String^ cmdText, 
    SqlConnection^ connection
)
public SqlCommand (
    String cmdText, 
    SqlConnection connection
)
public function SqlCommand (
    cmdText : String, 
    connection : SqlConnection
)

パラメータ

cmdText

クエリ テキスト。

connection

SQL Server のインスタンスへの接続を表す SqlConnection。

解説解説

SqlCommand のインスタンスの初期プロパティ値を次の表に示します。

プロパティ

初期値

CommandText

cmdText

CommandTimeout

30

CommandType

CommandType.Text

Connection

connection パラメータの値である新しい SqlConnection。

これらのパラメータの値は、関連するプロパティを設定することによって変更できます。

使用例使用例

SqlCommand を作成し、そのプロパティの一部を設定する例を次に示します。

Public Sub CreateCommand(ByVal
 queryString As String, _
  ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        Dim command As New
 SqlCommand(queryString, connection)

        connection.Open()
        Dim reader As SqlDataReader = command.ExecuteReader()
            While reader.Read()
            Console.WriteLine(String.Format("{0},
 {1}", _
                reader(0), reader(1)))
        End While
    End Using
End Sub
private static void CreateCommand(string
 queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(
            queryString, connection);
        connection.Open();
        SqlDataReader reader = command.ExecuteReader();
        while (reader.Read())
        {
            Console.WriteLine(String.Format("{0}, {1}",
                reader[0], reader[1]));
        }
    }
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

SqlCommand コンストラクタ (String)

クエリ テキストを指定して、SqlCommand クラスの新しいインスタンスを初期化します。

名前空間: System.Data.SqlClient
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public Sub New ( _
    cmdText As String _
)
Dim cmdText As String

Dim instance As New SqlCommand(cmdText)
public SqlCommand (
    string cmdText
)
public:
SqlCommand (
    String^ cmdText
)
public SqlCommand (
    String cmdText
)
public function SqlCommand (
    cmdText : String
)

パラメータ

cmdText

クエリ テキスト。

解説解説
使用例使用例

接続文字列とコマンド テキストを渡して、SqlCommand を作成する例を次に示します。

Public Sub CreateCommand()
    Dim queryString As String
 = "SELECT * FROM Categories ORDER BY CategoryID"
    Dim command As New SqlCommand(queryString)
    command.CommandTimeout = 15
    command.CommandType = CommandType.Text
End Sub 
public void CreateCommand() 
 {
    string queryString = "SELECT * FROM Categories ORDER
 BY CategoryID";
    SqlCommand command = new SqlCommand(queryString);
    command.CommandTimeout = 15;
    command.CommandType = CommandType.Text;
 }
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

SqlCommand コンストラクタ

SqlCommand クラスの新しいインスタンスを初期化します。
オーバーロードの一覧オーバーロードの一覧

参照参照

関連項目

SqlCommand クラス
SqlCommand メンバ
System.Data.SqlClient 名前空間

その他の技術情報

ADO.NET でのデータへの接続およびデータの取得
.NET Framework Data Provider for SQL Server の使用

SqlCommand プロパティ


パブリック プロパティパブリック プロパティ

プロテクト プロパティプロテクト プロパティ
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.Data.IDbCommand.Transaction  
参照参照

関連項目

SqlCommand クラス
System.Data.SqlClient 名前空間

その他の技術情報

ADO.NET でのデータへの接続およびデータの取得
.NET Framework Data Provider for SQL Server の使用

SqlCommand メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド BeginExecuteNonQuery オーバーロードされます。 この SqlCommand によって定義された Transact-SQL ステートメントまたはストアド プロシージャの非同期実行を開始します。
パブリック メソッド BeginExecuteReader オーバーロードされます。 この SqlCommand によって定義された Transact-SQL ステートメントまたはストアド プロシージャの非同期実行を開始し、サーバーから 1 つまたは複数の結果を取得します。
パブリック メソッド BeginExecuteXmlReader オーバーロードされます。 この SqlCommand によって定義された Transact-SQL ステートメントまたはストアド プロシージャの非同期実行を開始し、結果を XmlReader オブジェクトとして返します。
パブリック メソッド Cancel オーバーライドされます。 SqlCommand の実行のキャンセルを試行します。
パブリック メソッド Clone 現在のインスタンスのコピーである新しい SqlCommand オブジェクトを作成します。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド CreateParameter SqlParameter オブジェクトの新しいインスタンスを作成します。
パブリック メソッド Dispose  オーバーロードされます。 Component によって使用されているリソースを解放します。 ( Component から継承されます。)
パブリック メソッド EndExecuteNonQuery Transact-SQL ステートメントの非同期実行を完了します。
パブリック メソッド EndExecuteReader Transact-SQL ステートメントの非同期実行を完了し、要求された SqlDataReader を返します。
パブリック メソッド EndExecuteXmlReader Transact-SQL ステートメントの非同期実行を完了し、要求されたデータを XML として返します。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド ExecuteNonQuery オーバーライドされます。 接続に対して Transact-SQL ステートメントを実行し、影響を受けた行数を返します。
パブリック メソッド ExecuteReader オーバーロードされます。 CommandText を Connection に送信し、SqlDataReader を構築します。
パブリック メソッド ExecuteScalar オーバーライドされます。 クエリを実行し、そのクエリが返す結果セットの最初の行にある最初の列を返します。残りの列または行は無視されます。
パブリック メソッド ExecuteXmlReader CommandText を Connection に送信し、XmlReader オブジェクトを構築します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド Prepare オーバーライドされます。 SQL Server のインスタンスに対する準備済みのコマンドを作成します。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド ResetCommandTimeout CommandTimeout プロパティを既定値にリセットします。
パブリック メソッド ToString  Component の名前を格納している String を返します (存在する場合)。このメソッドはオーバーライドできません。 ( Component から継承されます。)
プロテクト メソッドプロテクト メソッド
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.Data.IDbCommand.ExecuteReader オーバーロードされます。  
インターフェイスの明示的な実装 System.IDisposable.Dispose  
参照参照

関連項目

SqlCommand クラス
System.Data.SqlClient 名前空間

その他の技術情報

ADO.NET でのデータへの接続およびデータの取得
.NET Framework Data Provider for SQL Server の使用

SqlCommand メンバ

SQL Server データベースに対して実行する Transact-SQL ステートメントまたはストアド プロシージャを表します。このクラスは継承できません。

SqlCommand データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
パブリック プロパティパブリック プロパティ
プロテクト プロパティプロテクト プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド BeginExecuteNonQuery オーバーロードされます。 この SqlCommand によって定義された Transact-SQL ステートメントまたはストアド プロシージャの非同期実行を開始します。
パブリック メソッド BeginExecuteReader オーバーロードされます。 この SqlCommand によって定義された Transact-SQL ステートメントまたはストアド プロシージャの非同期実行を開始し、サーバーから 1 つまたは複数の結果を取得します。
パブリック メソッド BeginExecuteXmlReader オーバーロードされます。 この SqlCommand によって定義された Transact-SQL ステートメントまたはストアド プロシージャの非同期実行を開始し、結果を XmlReader オブジェクトとして返します。
パブリック メソッド Cancel オーバーライドされます。 SqlCommand の実行のキャンセルを試行します。
パブリック メソッド Clone 現在のインスタンスのコピーである新しい SqlCommand オブジェクトを作成します。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 (MarshalByRefObject から継承されます。)
パブリック メソッド CreateParameter SqlParameter オブジェクトの新しいインスタンスを作成します。
パブリック メソッド Dispose  オーバーロードされます。 Component によって使用されているリソースを解放します。 (Component から継承されます。)
パブリック メソッド EndExecuteNonQuery Transact-SQL ステートメントの非同期実行を完了します。
パブリック メソッド EndExecuteReader Transact-SQL ステートメントの非同期実行を完了し、要求された SqlDataReader を返します。
パブリック メソッド EndExecuteXmlReader Transact-SQL ステートメントの非同期実行を完了し、要求されたデータを XML として返します。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド ExecuteNonQuery オーバーライドされます。 接続に対して Transact-SQL ステートメントを実行し、影響を受けた行数を返します。
パブリック メソッド ExecuteReader オーバーロードされます。 CommandText を Connection に送信し、SqlDataReader を構築します。
パブリック メソッド ExecuteScalar オーバーライドされます。 クエリを実行し、そのクエリが返す結果セットの最初の行にある最初の列を返します。残りの列または行は無視されます。
パブリック メソッド ExecuteXmlReader CommandText を Connection に送信し、XmlReader オブジェクトを構築します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド Prepare オーバーライドされます。 SQL Server のインスタンスに対する準備済みのコマンドを作成します。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド ResetCommandTimeout CommandTimeout プロパティを既定値にリセットします。
パブリック メソッド ToString  Component の名前を格納している String を返します (存在する場合)。このメソッドはオーバーライドできません。 (Component から継承されます。)
プロテクト メソッドプロテクト メソッド
パブリック イベントパブリック イベント
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.Data.IDbCommand.ExecuteReader オーバーロードされます。  
インターフェイスの明示的な実装 System.Data.IDbCommand.Transaction  
参照参照

関連項目

SqlCommand クラス
System.Data.SqlClient 名前空間

その他の技術情報

ADO.NET でのデータへの接続およびデータの取得
.NET Framework Data Provider for SQL Server の使用



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「SqlCommand」の関連用語

SqlCommandのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



SqlCommandのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS