SqlDataReader.GetBytes Method
Reads a stream of bytes from the specified column offset into the buffer an array starting at the given buffer offset.
Assembly: System.Data (in System.Data.dll)
public override long GetBytes( int i, long dataIndex, byte[] buffer, int bufferIndex, int length )
Parameters
- i
- Type: System.Int32
The zero-based column ordinal.
- dataIndex
- Type: System.Int64
The index within the field from which to begin the read operation.
- buffer
- Type: System.Byte()
The buffer into which to read the stream of bytes.
- bufferIndex
- Type: System.Int32
The index within the buffer where the write operation is to start.
- length
- Type: System.Int32
The maximum length to copy into the buffer.
Implements
IDataRecord.GetBytes(Int32, Int64, Byte(), Int32, Int32)IDataRecord.GetBytes(Int32, Int64, Byte(), Int32, Int32)
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, if the SqlDataReader is reading a large data structure into a buffer. For more information, see the SequentialAccess setting for CommandBehavior.
If you pass a buffer that is Nothing, 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.
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
For instance,
SqlBytes v2;
byte[] ts;
if (!sdr.IsDBNull(sdr.GetOrdinal("timestamp_column"))) { v2 = sdr.GetSqlBytes(sdr.GetOrdinal("timestamp_column")); ts = v2.Value; Console.WriteLine("bit_timestamp contains {0}", Convert.ToBase64String(ts)); } else { Console.WriteLine("bit_timestamp contains null"); }
- 2/8/2012
- RahulMisra2000
If (Not rdr.IsDBNull(ndx)) Then
Dim size As Long = rdr.GetBytes(ndx, 0, Nothing, 0, 0) ' get the length of data
Dim values As Byte() = New Byte(size - 1) {}
Dim bufferSize As Integer = 1024
Dim bytesRead As Long = 0
Dim curPos As Integer = 0
While (bytesRead < size)
If (size - bytesRead < bufferSize) Then
bufferSize = size - bytesRead
End If
bytesRead += myReader.GetBytes(ndx, curPos, values, curPos, bufferSize)
curPos += bufferSize
End While
Return values
End If
- 4/27/2011
- Meowth
if(!rdr.IsDBNull(ndx))
{
long size = rdr.GetBytes(ndx, 0, null, 0, 0); //get the length of data}
byte[] values = new byte[size];
int bufferSize = 1024;
long bytesRead = 0;
int curPos = 0;
while (bytesRead < size)
{
bytesRead += rdr.GetBytes(ndx, curPos, values, curPos, bufferSize);
curPos += bufferSize;
}
- 6/22/2010
- Console.WriteLine
