언어

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
구현

예제

다음 예제에서는 a 및 a SqlConnection 를 SqlBatch만든 다음 일괄 처리에 여러 SqlBatchCommand 개체를 추가합니다. 그런 다음 일괄 처리를 실행하여 .를 만듭니다 SqlDataReader. 이 예제에서는 일괄 처리 명령의 결과를 읽고 콘솔에 기록합니다. 마지막으로, 이 예제는 블록을 닫은 다음 SqlConnection 블록이 using 범위를 벗어날 때 닫힙니다SqlDataReader.

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

다음 예제에서는 a 및 a SqlConnection 를 SqlBatch만든 다음 일괄 처리에 여러 SqlBatchCommand 개체를 추가합니다. 그런 다음 일괄 처리를 실행하여 .를 만듭니다 SqlDataReader. 이 예제에서는 일괄 처리 명령의 결과를 읽고 콘솔에 기록합니다. 마지막으로, 이 예제는 블록을 닫은 다음 SqlConnection 블록이 using 범위를 벗어날 때 닫힙니다SqlDataReader.

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

생성자

속성 Description
SqlBatch()

새 SqlBatch을 초기화합니다.

SqlBatch(SqlConnection, SqlTransaction)

새 SqlBatch을 초기화합니다.

속성

속성 Description
BatchCommands

의 일괄 처리에 포함된 명령 목록입니다 SqlBatchCommandCollection.

Commands

의 일괄 처리에 포함된 목록 SqlBatchCommand 입니다 List<T>.

Connection

의 이 인스턴스SqlConnection에서 SqlBatch 사용되는 값을 가져오거나 설정합니다.

DbBatchCommands

개체의 SqlBatchCommand 컬렉션을 가져옵니다.

DbConnection

이 DbConnection항목에서 사용되는 값을 SqlBatch 가져오거나 설정합니다.

DbTransaction

이 SqlTransaction 개체가 SqlBatch 실행되는 내의 값을 가져오거나 설정합니다.

Timeout

일괄 처리 실행 시도를 종료하고 오류를 생성하기 전에 대기 시간(초)을 가져오거나 설정합니다.

Transaction

명령이 SqlTransaction 실행되는 내의 SqlBatch 값을 가져오거나 설정합니다.

메서드

속성 Description
Cancel()

의 실행을 취소하려고 시도합니다 SqlBatch.

CreateDbBatchCommand()

개체의 새 인스턴스를 SqlBatchCommand 만듭니다.

Dispose()

관리되지 않는 리소스의 해제, 해제 또는 재설정과 관련된 애플리케이션 정의 작업을 수행합니다.

DisposeAsync()

관리되지 않는 리소스를 비동기적으로 해제, 해제 또는 다시 설정과 관련된 애플리케이션 정의 작업을 수행합니다.

ExecuteDbDataReader(CommandBehavior)

연결에 대해 일괄 처리를 실행하여 결과에 액세스하는 SqlDataReader 데 사용할 수 있는 일괄 처리를 반환합니다.

ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken)

이 구현은 메서드를 ExecuteReaderAsync() 호출하고 완료된 작업을 반환합니다. 이미 취소된 취소 토큰을 전달한 경우 기본 구현은 취소된 작업을 반환합니다. 이 메서드는 작업을 일찍 취소하도록 요청하는 데 사용할 수 있는 취소 토큰을 허용합니다.

ExecuteNonQuery()

연결 개체에 대해 일괄 처리를 실행하여 모든 일괄 처리 명령에서 영향을 받는 총 행 수를 반환합니다.

ExecuteNonQueryAsync(CancellationToken)

이 버전은 .의 비동기 버전입니다 ExecuteNonQuery(). 구현은 메서드를 ExecuteNonQueryAsync(CancellationToken) 호출하고 완료된 작업을 반환합니다. 이미 취소된 취소 토큰을 전달한 경우 기본 구현은 취소된 작업을 반환합니다. 반환된 작업이 완료될 때까지 개체의 DbCommand 다른 메서드와 속성을 호출하지 마세요.

ExecuteReader()

를 CommandsConnection 보내고 빌드합니다 SqlDataReader.

ExecuteReader(CommandBehavior)

를 CommandsConnection 보내고 빌드합니다 SqlDataReader.

ExecuteReaderAsync(CancellationToken)

를 보내고 ExecuteReader()Commands 빌드하는 비동기 버전Connection입니다SqlDataReader. 반환된 Task 개체를 통해 예외가 보고됩니다.

ExecuteReaderAsync(CommandBehavior, CancellationToken)

를 보내고 ExecuteReader()Commands 빌드하는 비동기 버전Connection입니다SqlDataReader. 반환된 Task 개체를 통해 예외가 보고됩니다.

ExecuteScalar()

일괄 처리를 실행하고 반환된 첫 번째 결과 집합에서 첫 번째 행의 첫 번째 열을 반환합니다. 다른 모든 열, 행 및 결과 집합은 무시됩니다.

ExecuteScalarAsync(CancellationToken)

일괄 처리를 실행하고 반환된 첫 번째 결과 집합에서 첫 번째 행의 첫 번째 열을 반환하는 비동기 버전 ExecuteScalar()입니다. 다른 모든 열, 행 및 결과 집합은 무시됩니다.

Prepare()

데이터 원본에 준비된(또는 컴파일된) 버전의 일괄 처리 또는 각 명령을 만듭니다.

PrepareAsync(CancellationToken)

데이터 원본에 준비된(또는 컴파일된) 버전의 일괄 처리 또는 각 명령을 비동기적으로 만듭니다.

적용 대상