Language

SqlBatch クラス

定義

public ref class SqlBatch : IAsyncDisposable, IDisposable
public ref class SqlBatch : System::Data::Common::DbBatch
public class SqlBatch : IAsyncDisposable, IDisposable
public class SqlBatch : System.Data.Common.DbBatch
type SqlBatch = class
    interface IDisposable
    interface IAsyncDisposable
type SqlBatch = class
    inherit DbBatch
Public Class SqlBatch
Implements IAsyncDisposable, IDisposable
Public Class SqlBatch
Inherits DbBatch
継承
SqlBatch
継承
SqlBatch
実装

例

次の例では、 SqlConnection と SqlBatchを作成し、バッチに複数の SqlBatchCommand オブジェクトを追加します。 その後、バッチが実行され、 SqlDataReaderが作成されます。 この例では、バッチ コマンドの結果を読み取り、コンソールに書き込みます。 最後に、SqlDataReaderを閉じ、using ブロックがスコープから外れるので、SqlConnectionを閉じます。

using Microsoft.Data.SqlClient;

class Program
{
    static void Main()
    {
        string str = "Data Source=(local);Initial Catalog=Northwind;"
        + "Integrated Security=SSPI;Encrypt=False";
        RunBatch(str);
    }

    static void RunBatch(string connString)
    {
        using var connection = new SqlConnection(connString);
        connection.Open();

        using var batch = new SqlBatch(connection);

        const int count = 10;
        const string parameterName = "parameter";
        for (int i = 0; i < count; i++)
        {
            var batchCommand = new SqlBatchCommand($"SELECT @{parameterName} as value");
            batchCommand.Parameters.Add(new SqlParameter(parameterName, i));
            batch.BatchCommands.Add(batchCommand);
        }

        var results = new List<int>(count);
        using (SqlDataReader reader = batch.ExecuteReader())
        {
            do
            {
                while (reader.Read())
                {
                    results.Add(reader.GetFieldValue<int>(0));
                }
            } while (reader.NextResult());
        }
        Console.WriteLine(string.Join(", ", results));
    }
}

次の例では、 SqlConnection と SqlBatchを作成し、バッチに複数の SqlBatchCommand オブジェクトを追加します。 その後、バッチが実行され、 SqlDataReaderが作成されます。 この例では、バッチ コマンドの結果を読み取り、コンソールに書き込みます。 最後に、SqlDataReaderを閉じ、using ブロックがスコープから外れるので、SqlConnectionを閉じます。

using Microsoft.Data.SqlClient;

class Program
{
    static void Main()
    {
        string str = "Data Source=(local);Initial Catalog=Northwind;"
                   + "Integrated Security=SSPI;Encrypt=False";
        RunBatch(str);
    }

    static void RunBatch(string connString)
    {
        using var connection = new SqlConnection(connString);
        connection.Open();

        using var batch = new SqlBatch(connection);

        const int count = 10;
        const string parameterName = "parameter";
        for (int i = 0; i < count; i++)
        {
            var batchCommand = new SqlBatchCommand($"SELECT @{parameterName} as value");
            batchCommand.Parameters.Add(new SqlParameter(parameterName, i));
            batch.BatchCommands.Add(batchCommand);
        }

        var results = new List<int>(count);
        using (SqlDataReader reader = batch.ExecuteReader())
        {
            do
            {
                while (reader.Read())
                {
                    results.Add(reader.GetFieldValue<int>(0));
                }
            } while (reader.NextResult());
        }
        Console.WriteLine(string.Join(", ", results));
    }
}

コンストラクター

Name 説明
SqlBatch()

新しい SqlBatchを初期化します。

SqlBatch(SqlConnection, SqlTransaction)

新しい SqlBatchを初期化します。

プロパティ

Name 説明
BatchCommands

SqlBatchCommandCollectionのバッチに含まれるコマンドの一覧。

Commands

List<T>のバッチに含まれるSqlBatchCommandの一覧。

Connection

SqlConnectionのこのインスタンスによって使用されるSqlBatchを取得または設定します。

DbBatchCommands

SqlBatchCommand オブジェクトのコレクションを取得します。

DbConnection

このDbConnectionで使用されるSqlBatchを取得または設定します。

DbTransaction

このSqlTransaction オブジェクトが実行されるSqlBatchを取得または設定します。

Timeout

バッチの実行試行を終了してエラーを生成するまでの待機時間 (秒単位) を取得または設定します。

Transaction

SqlBatch コマンドを実行するSqlTransactionを取得または設定します。

メソッド

Name 説明
Cancel()

SqlBatchの実行を取り消そうとします。

CreateDbBatchCommand()

SqlBatchCommand オブジェクトの新しいインスタンスを作成します。

Dispose()

アンマネージド リソースの解放、解放、またはリセットに関連付けられているアプリケーション定義のタスクを実行します。

DisposeAsync()

アンマネージ リソースの解放、解放、またはリセットに関連するアプリケーション定義タスクを非同期的に実行します。

ExecuteDbDataReader(CommandBehavior)

接続に対してバッチを実行し、結果へのアクセスに使用できる SqlDataReader を返します。

ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken)

この実装は、 ExecuteReaderAsync() メソッドを呼び出し、完了したタスクを返します。 既定の実装では、既に取り消されたキャンセル トークンが渡された場合、取り消されたタスクが返されます。 このメソッドは、早期に取り消す操作を要求するために使用できるキャンセル トークンを受け入れます。

ExecuteNonQuery()

接続オブジェクトに対してバッチを実行し、すべてのバッチ コマンドで影響を受けた行の合計数を返します。

ExecuteNonQueryAsync(CancellationToken)

これは、 ExecuteNonQuery()の非同期バージョンです。 実装は、 ExecuteNonQueryAsync(CancellationToken) メソッドを呼び出し、完了したタスクを返します。 既定の実装では、既に取り消されたキャンセル トークンが渡された場合、取り消されたタスクが返されます。 返された Task が完了するまで、 DbCommand オブジェクトの他のメソッドとプロパティを呼び出さないでください。

ExecuteReader()

CommandsをConnectionに送信し、SqlDataReaderをビルドします。

ExecuteReader(CommandBehavior)

CommandsをConnectionに送信し、SqlDataReaderをビルドします。

ExecuteReaderAsync(CancellationToken)

ExecuteReader()の非同期バージョン。CommandsをConnectionに送信し、SqlDataReaderをビルドします。 例外は、返された Task オブジェクトを介して報告されます。

ExecuteReaderAsync(CommandBehavior, CancellationToken)

ExecuteReader()の非同期バージョン。CommandsをConnectionに送信し、SqlDataReaderをビルドします。 例外は、返された Task オブジェクトを介して報告されます。

ExecuteScalar()

バッチを実行し、返された最初の結果セットの最初の行の最初の列を返します。 他のすべての列、行、結果セットは無視されます。

ExecuteScalarAsync(CancellationToken)

バッチを実行し、最初に返された結果セットの最初の行の最初の列を返す、 ExecuteScalar()の非同期バージョン。 他のすべての列、行、結果セットは無視されます。

Prepare()

準備済み (またはコンパイル済み) バージョンのバッチ、またはその各コマンドをデータ ソースに作成します。

PrepareAsync(CancellationToken)

データ ソース上に、準備済み (またはコンパイル済み) バージョンのバッチまたはその各コマンドを非同期に作成します。

適用対象