Share via


SqlBatch 类

定义

public ref class SqlBatch : System::Data::Common::DbBatch
public class SqlBatch : System.Data.Common.DbBatch
type SqlBatch = class
    inherit DbBatch
Public Class SqlBatch
Inherits DbBatch
继承
SqlBatch

示例

以下示例创建 SqlConnectionSqlBatch,然后将多个 SqlBatchCommand 对象添加到批处理。 然后,它执行批处理,创建 SqlDataReader。 该示例通读批处理命令的结果,并将其写入控制台。 最后,该示例关闭 , SqlDataReader 然后在 SqlConnection 块退出范围时 using 关闭 。

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

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

        // Optionally Prepare
        batch.Prepare();

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

构造函数

SqlBatch()

初始化新的 SqlBatch

SqlBatch(SqlConnection, SqlTransaction)

初始化新的 SqlBatch

属性

BatchCommands

批处理中包含的 SqlBatchCommandCollection命令列表。

Commands

对象 中的 批处理IListSqlBatchCommand中包含的命令列表。

Connection

获取或设置 SqlConnection 的此实例 SqlBatch 使用的 。

DbBatchCommands

获取 SqlBatchCommand 对象的集合。

DbConnection

获取或设置此 DbConnection 使用的 SqlBatch

DbTransaction

获取或设置将在其中执行此 SqlBatch 对象的 SqlTransaction

Timeout

获取或设置 (等待时间(以秒为单位)) ,然后终止尝试执行批处理并生成错误。

Transaction

获取或设置 SqlTransaction 在其中执行命令的 SqlBatch

方法

Cancel()

尝试取消 的执行 SqlBatch

CreateDbBatchCommand()

创建 SqlBatchCommand 对象的新实例。

Dispose()

执行与释放或重置非托管资源关联的应用程序定义的任务。

ExecuteDbDataReader(CommandBehavior)

对其连接执行批处理,返回 SqlDataReader 可用于访问结果的 。

ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken)

此实现调用 ExecuteReaderAsync() 方法并返回已完成的任务。 如果传递到已取消的取消标记,则默认实现将返回已取消的任务。

该方法可用于请求操作之前接受取消标记。

ExecuteNonQuery()

对其连接对象执行批处理,返回所有批处理命令中受影响的总行数。

ExecuteNonQueryAsync(CancellationToken)

这是 ExecuteNonQuery() 的异步版本。

实现调用 ExecuteNonQueryAsync(CancellationToken) 方法并返回已完成的任务。 如果传递到已取消的取消标记,则默认实现将返回已取消的任务。

在返回的任务完成前,不要调用 DbCommand 对象的其他方法和属性。

ExecuteReader()

Commands将 发送到 并Connection生成 SqlDataReader

ExecuteReaderAsync(CancellationToken)

ExecuteReader() 异步版本,它将 发送到 CommandsConnection 并生成 SqlDataReader。 将通过返回的任务对象报告异常。

ExecuteScalar()

执行批处理并返回第一个返回的结果集中第一行的第一列。 将忽略所有其他列、行和结果集。

ExecuteScalarAsync(CancellationToken)

的异步版本 ExecuteScalar(),它执行批处理并返回第一个返回的结果集中第一行的第一列。 将忽略所有其他列、行和结果集。

Prepare()

在数据源上创建批处理或其每个命令的准备 (或编译) 版本。

PrepareAsync(CancellationToken)

在数据源上异步创建批处理或其每个命令的准备 (或编译) 版本。

适用于