次の方法で共有


SqlCommand クラス

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

この型のすべてのメンバの一覧については、SqlCommand メンバ を参照してください。

System.Object
   System.MarshalByRefObject
      System.ComponentModel.Component
         System.Data.SqlClient.SqlCommand

NotInheritable Public Class SqlCommand
   Inherits Component
   Implements IDbCommand, ICloneable
[C#]
public sealed class SqlCommand : Component, IDbCommand, ICloneable
[C++]
public __gc __sealed class SqlCommand : public Component,
   IDbCommand, ICloneable
[JScript]
public class SqlCommand extends Component implements IDbCommand,
   ICloneable

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

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

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

項目 説明
ExecuteReader 行を返すコマンドを実行します。パフォーマンスを高めるために、 ExecuteReader は Transact-SQL sp_executesql システム ストアド プロシージャを使用してコマンドを呼び出します。そのため、Transact-SQL SET ステートメントなどのコマンドの実行に ExecuteReader を使用すると、期待した効果が得られないことがあります。
ExecuteNonQuery Transact-SQL の INSERT、DELELE、UPDATE、SET の各ステートメントなどのコマンドを実行します。
ExecuteScalar データベースから単一の値 (集計値など) を取得します。
ExecuteXmlReader CommandTextConnection に送信し、 XmlReader オブジェクトを構築します。

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

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

使用例

[Visual Basic, C#, C++] SqlConnectionSqlCommand 、および SqlDataReader を作成する例を次に示します。この例では、データを読み取り、コンソールに出力します。最後に、 SqlDataReader を閉じ、 SqlConnection を閉じます。

 
Public Sub ReadMyData(myConnString As String)
    Dim mySelectQuery As String = "SELECT OrderID, Customer FROM Orders"
    Dim myConnection As New SqlConnection(myConnString)
    Dim myCommand As New SqlCommand(mySelectQuery, myConnection)
    myConnection.Open()
    Dim myReader As SqlDataReader = myCommand.ExecuteReader()
    Try
        While myReader.Read()
            Console.WriteLine((myReader.GetInt32(0).ToString & ", " & myReader.GetString(1)))
        End While
    Finally
        ' always call Close when done reading.
        myReader.Close()
        ' always call Close when done reading.
        myConnection.Close()
    End Try
End Sub 'ReadMyData

[C#] 
public void ReadMyData(string myConnString) 
{
   string mySelectQuery = "SELECT OrderID, Customer FROM Orders";
   SqlConnection myConnection = new SqlConnection(myConnString);
   SqlCommand myCommand = new SqlCommand(mySelectQuery,myConnection);
   myConnection.Open();
   SqlDataReader myReader = myCommand.ExecuteReader();
   try 
   {
     while (myReader.Read()) 
     {
       Console.WriteLine(myReader.GetInt32(0) + ", " + myReader.GetString(1));
     }
    }
    finally 
    {
    // always call Close when done reading.
    myReader.Close();
    // always call Close when done reading.
    myConnection.Close();
    }
 }

[C++] 
public:
void ReadMyData(String* myConnString) 
{
   String* mySelectQuery = S"SELECT OrderID, Customer FROM Orders";
   SqlConnection* myConnection = new SqlConnection(myConnString);
   SqlCommand* myCommand = new SqlCommand(mySelectQuery,myConnection);
   myConnection->Open();
   SqlDataReader* myReader = myCommand->ExecuteReader();
   try 
   {
     while (myReader->Read()) 
     {
       Console::WriteLine(S"{0}, {1}", __box(myReader->GetInt32(0)), myReader->GetString(1));
     }
    }
    __finally 
    {
    // always call Close when done reading.
    myReader->Close();
    // always call Close when done reading.
    myConnection->Close();
    }
 }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Data.SqlClient

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: System.Data (System.Data.dll 内)

参照

SqlCommand メンバ | System.Data.SqlClient 名前空間 | SqlDataAdapter | SqlConnection