SqlDataReader.GetFieldValue<T>(Int32) Method

Definition

Synchronously gets the value of the specified column as a type. GetFieldValueAsync<T>(Int32, CancellationToken) is the asynchronous version of this method.

public:
generic <typename T>
 override T GetFieldValue(int i);
public override T GetFieldValue<T>(int i);
override this.GetFieldValue : int -> 'T
Public Overrides Function GetFieldValue(Of T) (i As Integer) As T

Type Parameters

T

The type of the value to be returned.

Parameters

i
Int32

The column to be retrieved.

Returns

T

The returned type object.

Exceptions

  • The connection drops or is closed during the data retrieval.
  • The SqlDataReader is closed during the data retrieval.
  • There is no data ready to be read (for example, the first Read() hasn't been called, or returned false).
  • Tried to read a previously-read column in sequential mode.
  • There was an asynchronous operation in progress. This applies to all Get* methods when running in sequential mode, as they could be called while reading a stream.

Trying to read a column that does not exist.

The value of the column was null (IsDBNull(Int32) == true), retrieving a non-SQL type.

T doesn't match the type returned by SQL Server or cannot be cast.

Remarks

T can be one of the following types:

  • Boolean (bool)
  • Byte
  • Char
  • DateOnly (.NET 6 or later)
  • DateTime
  • DateTimeOffset
  • Decimal
  • Double
  • Single (float)
  • Guid
  • Int16 (short)
  • Int32 (int)
  • Int64 (long)
  • SqlBoolean
  • SqlByte
  • SqlDateTime
  • SqlDecimal
  • SqlDouble
  • SqlGuid
  • SqlInt16
  • SqlInt32
  • SqlInt64
  • SqlMoney
  • SqlSingle
  • SqlString
  • Stream
  • String
  • TextReader
  • TimeOnly (.NET 6 or later)
  • XmlReader
  • UDT, which can be any CLR type marked with SqlUserDefinedTypeAttribute.

For more information, see SqlClient Streaming Support.

Applies to