In plaats van de hele buffergrootte te lezen, vraag alleen om maximaal de buffergrootte, maar ook hoogstens wat je denkt dat er nog over is. Om eerlijk te zijn, kun je net zo goed een buffer van precies de juiste maat maken in plaats van toch een vaste grootte.
// I assume this works for MySqlDataReader too...
int length = (int)reader.GetBytes(column, 0, null, 0, 0);
byte[] buffer = new byte[length];
int index = 0;
while (index < length)
{
int bytesRead = (int)reader.GetBytes(column, index,
buffer, index, length - index);
index += bytesRead;
}
Maar als u een kleinere buffer wilt (bijvoorbeeld als u deze buffer per keer verwerkt), kunt u het volgende gebruiken:
int length = (int)reader.GetBytes(column, 0, null, 0, 0);
byte[] buffer = new byte[length];
int index = 0;
while (index < length)
{
int bytesRead = (int)reader.GetBytes(column, index, buffer, 0,
Math.Max(buffer.Length, length - index));
// Process the buffer, up to value bytesRead
// ...
index += bytesRead;
}