语言

SqlDataRecord 类

定义

表示单个数据行及其元数据。

public ref class SqlDataRecord : System::Data::IDataRecord
public class SqlDataRecord : System.Data.IDataRecord
type SqlDataRecord = class
    interface IDataRecord
Public Class SqlDataRecord
Implements IDataRecord
继承
SqlDataRecord
实现

示例

以下示例演示如何创建描述记录的列元数据的多个 SqlMetaData 对象,然后创建可 SqlDataRecord 重用的实例。 设置列SqlDataRecord值,SqlDataRecord可用于将多行流式传输到SQL Server作为表值参数。

using System;
using System.Collections.Generic;
using System.Data;
using Microsoft.Data.SqlClient.Server;

// Stream rows to SQL Server as a table-valued parameter.
public static IEnumerable<SqlDataRecord> CreateNewRecord()
{
   // Re-use a single SqlDataRecord instance rather than allocating a new one for each row.
   // Each row's values are read before SqlCommand advances to the next one.
   SqlDataRecord record;    

   // Create a new record with the column metadata. The constructor is 
   // able to accept a variable number of parameters. 
   record = new SqlDataRecord(new SqlMetaData[] { new SqlMetaData("Column1", SqlDbType.NVarChar, 12), 
                                                  new SqlMetaData("Column2", SqlDbType.Int), 
                                                  new SqlMetaData("Column3", SqlDbType.DateTime) });

   // Set the record fields.
   record.SetString(0, "Hello World!");
   record.SetInt32(1, 42);
   record.SetDateTime(2, DateTime.Now);

   // Stream the first record to SQL Server.
   yield return record;

   // Set the fields of the second record and stream it to SQL Server.
   record.SetInt32(1, 0);
   yield return record;
}

注解

此类描述表值参数的单个行。 从描述记录的列元数据的对象数组SqlMetaData中构造一个,使用 Set<Type> 方法填充记录的列元数据,将其包含在一个IEnumerable<SqlDataRecord>并分配给该IEnumerable<SqlDataRecord>Value对象中。

为了在发送多行时获得最佳性能,请跨IEnumerable<SqlDataRecord>迭代器重复使用单个SqlDataRecord实例:为每个行设置新列值和yield return同一实例。 SqlCommand 将在前进到下一个记录之前读取每个记录。

构造函数

名称 说明
SqlDataRecord(SqlMetaData[])

根据作为参数传递的对象SqlMetaData数组,使用架构初始化新SqlDataRecord实例。

属性

名称 说明
FieldCount

获取数据行中的列数。 此属性为只读。

Item[Int32]

获取列参数指定的 ordinal 列的公共语言运行时 (CLR) 类型值。

Item[String]

获取列参数指定的 name 列的公共语言运行时 (CLR) 类型值。

方法

名称 说明
GetBoolean(Int32)

获取序号指定的列的值。Boolean

GetByte(Int32)

获取序号指定的列的值。Byte

GetBytes(Int32, Int64, Byte[], Int32, Int32)

获取序号指定为对象数组的 Byte 列的值。

GetChar(Int32)

获取序号指定的列的值。Char

GetChars(Int32, Int64, Char[], Int32, Int32)

获取序号指定为对象数组的 Char 列的值。

GetDataTypeName(Int32)

返回序号参数指定的列的数据类型的名称。

GetDateTime(Int32)

获取序号指定的列的值。DateTime

GetDateTimeOffset(Int32)

以 . 的形式 DateTimeOffset返回指定列的数据。

GetDecimal(Int32)

获取序号指定的列的值。Decimal

GetDouble(Int32)

获取序号指定的列的值。Double

GetFieldType(Int32)

返回一个Type对象,该对象表示公共语言运行时 (CLR) 类型,该类型映射到由参数指定的ordinal列的SQL Server类型。

GetFloat(Int32)

获取序号指定的列的值。Single

GetGuid(Int32)

获取序号指定的列的值。Guid

GetInt16(Int32)

获取序号指定的列的值。Int16

GetInt32(Int32)

获取序号指定的列的值。Int32

GetInt64(Int32)

获取序号指定的列的值。Int64

GetName(Int32)

返回序号参数指定的列的名称。

GetOrdinal(String)

返回列名称指定的列序号。

GetSqlBinary(Int32)

获取序号指定的列的值。SqlBinary

GetSqlBoolean(Int32)

获取序号指定的列的值。SqlBoolean

GetSqlByte(Int32)

获取序号指定的列的值。SqlByte

GetSqlBytes(Int32)

获取序号指定的列的值。SqlBytes

GetSqlChars(Int32)

获取序号指定的列的值。SqlChars

GetSqlDateTime(Int32)

获取序号指定的列的值。SqlDateTime

GetSqlDecimal(Int32)

获取序号指定的列的值。SqlDecimal

GetSqlDouble(Int32)

获取序号指定的列的值。SqlDouble

GetSqlFieldType(Int32)

返回一个Type对象,该对象表示映射到列SQL Server类型的类型(作为SQL Server类型(在类型中System.Data.SqlTypes定义)。

GetSqlGuid(Int32)

获取序号指定的列的值。SqlGuid

GetSqlInt16(Int32)

获取序号指定的列的值。SqlInt16

GetSqlInt32(Int32)

获取序号指定的列的值。SqlInt32

GetSqlInt64(Int32)

获取序号指定的列的值。SqlInt64

GetSqlMetaData(Int32)

返回一个 SqlMetaData 对象,描述列序号指定的列的元数据。

GetSqlMoney(Int32)

获取序号指定的列的值。SqlMoney

GetSqlSingle(Int32)

获取序号指定的列的值。SqlSingle

GetSqlString(Int32)

获取序号指定的列的值。SqlString

GetSqlValue(Int32)

返回列中存储的数据值,以列序号指定的SQL Server类型表示。

GetSqlValues(Object[])

返回在数组中以SQL Server类型表示的记录中所有列的值。

GetSqlXml(Int32)

获取序号指定的列的值。SqlXml

GetString(Int32)

获取序号指定的列的值。String

GetTimeSpan(Int32)

以 . 的形式 TimeSpan返回指定列的数据。

GetValue(Int32)

返回序号参数指定的列的公共语言运行时 (CLR) 类型值。

GetValues(Object[])

返回数组中记录中所有列的值,以公共语言运行时 (CLR) 类型表示。

IsDBNull(Int32)

如果列序号参数指定的列为 null,则返回 true 。

SetBoolean(Int32, Boolean)

将列中存储的数据设置为指定 Boolean 值。

SetByte(Int32, Byte)

将列中存储的数据设置为指定 Byte 值。

SetBytes(Int32, Int64, Byte[], Int32, Int32)

将列中存储的数据设置为指定的值数组 Byte 。

SetChar(Int32, Char)

将列中存储的数据设置为指定 Char 值。

SetChars(Int32, Int64, Char[], Int32, Int32)

将列中存储的数据设置为指定的值数组 Char 。

SetDateTime(Int32, DateTime)

将列中存储的数据设置为指定 DateTime 值。

SetDateTimeOffset(Int32, DateTimeOffset)

将指定的列的值设置为 DateTimeOffset 值。

SetDBNull(Int32)

将指定列中的值设置为 DBNull。

SetDecimal(Int32, Decimal)

将列中存储的数据设置为指定 Decimal 值。

SetDouble(Int32, Double)

将列中存储的数据设置为指定 Double 值。

SetFloat(Int32, Single)

将列中存储的数据设置为指定 Single 值。

SetGuid(Int32, Guid)

将列中存储的数据设置为指定 Guid 值。

SetInt16(Int32, Int16)

将列中存储的数据设置为指定 Int16 值。

SetInt32(Int32, Int32)

将列中存储的数据设置为指定 Int32 值。

SetInt64(Int32, Int64)

将列中存储的数据设置为指定 Int64 值。

SetSqlBinary(Int32, SqlBinary)

将列中存储的数据设置为指定 SqlBinary 值。

SetSqlBoolean(Int32, SqlBoolean)

将列中存储的数据设置为指定 SqlBoolean 值。

SetSqlByte(Int32, SqlByte)

将列中存储的数据设置为指定 SqlByte 值。

SetSqlBytes(Int32, SqlBytes)

将列中存储的数据设置为指定 SqlBytes 值。

SetSqlChars(Int32, SqlChars)

将列中存储的数据设置为指定 SqlChars 值。

SetSqlDateTime(Int32, SqlDateTime)

将列中存储的数据设置为指定 SqlDateTime 值。

SetSqlDecimal(Int32, SqlDecimal)

将列中存储的数据设置为指定 SqlDecimal 值。

SetSqlDouble(Int32, SqlDouble)

将列中存储的数据设置为指定 SqlDouble 值。

SetSqlGuid(Int32, SqlGuid)

将列中存储的数据设置为指定 SqlGuid 值。

SetSqlInt16(Int32, SqlInt16)

将列中存储的数据设置为指定 SqlInt16 值。

SetSqlInt32(Int32, SqlInt32)

将列中存储的数据设置为指定 SqlInt32 值。

SetSqlInt64(Int32, SqlInt64)

将列中存储的数据设置为指定 SqlInt64 值。

SetSqlMoney(Int32, SqlMoney)

将列中存储的数据设置为指定 SqlMoney 值。

SetSqlSingle(Int32, SqlSingle)

将列中存储的数据设置为指定 SqlSingle 值。

SetSqlString(Int32, SqlString)

将列中存储的数据设置为指定 SqlString 值。

SetSqlXml(Int32, SqlXml)

将列中存储的数据设置为指定 SqlXml 值。

SetString(Int32, String)

将列中存储的数据设置为指定 String 值。

SetTimeSpan(Int32, TimeSpan)

将指定的列的值设置为 TimeSpan.

SetValue(Int32, Object)

为列序号指定的列设置以公共语言运行时 (CLR) 类型表示的新值。

SetValues(Object[])

设置中 SqlDataRecord所有列的新值。 这些值表示为公共语言运行时 (CLR) 类型。

显式接口实现

名称 说明
IDataRecord.GetData(Int32)

此版本不支持。

适用于