DataTableReader::GetBytes Method (Int32, Int64, array<Byte>^, Int32, Int32)
Reads a stream of bytes starting at the specified column offset into the buffer as an array starting at the specified buffer offset.
Assembly: System.Data (in System.Data.dll)
public: virtual long long GetBytes( int ordinal, long long dataIndex, array<unsigned char>^ buffer, int bufferIndex, int length ) override
Parameters
- ordinal
-
Type:
System::Int32
The zero-based column ordinal.
- dataIndex
-
Type:
System::Int64
The index within the field from which to start the read operation.
- buffer
-
Type:
array<System::Byte>^
The buffer into which to read the stream of bytes.
- bufferIndex
-
Type:
System::Int32
The index within the buffer at which to start placing the data.
- length
-
Type:
System::Int32
The maximum length to copy into the buffer.
| Exception | Condition |
|---|---|
| ArgumentOutOfRangeException | The index passed was outside the range of 0 to FieldCount - 1. |
| DeletedRowInaccessibleException | An attempt was made to retrieve data from a deleted row. |
| InvalidOperationException | An attempt was made to read or access a column in a closed DataTableReader. |
| InvalidCastException | The specified column does not contain a byte array. |
GetBytes returns the number of available bytes in the field. Most of the time this is the exact length of the field. However, the number returned may be less than the true length of the field if GetBytes has already been used to obtain bytes from the field. This may be the case, for example, when the DataTableReader is reading a large data structure into a buffer
If you pass a buffer that is null (Nothing in Visual Basic), GetBytes returns the length of the entire field in bytes, not the remaining size based on the buffer offset parameter.
No conversions are performed; therefore the data retrieved must already be a byte array or coercible to a byte array.
The following example creates a DataTableReader based on data in the AdventureWorks sample database, and saves each image retrieved to a separate file in the C:\ folder. In order to test this application, create a new Console application, reference the System.Drawing.dll assembly, and paste the sample code into the newly created file.
Available since 2.0