पूरे बफ़र आकार को पढ़ने के बजाय, केवल अधिक से अधिक के लिए पूछें बफर आकार, लेकिन यह भी कि आप जो मानते हैं वह बचा हुआ है। ईमानदार होने के लिए, आप वैसे भी एक निश्चित आकार के बजाय बिल्कुल सही आकार का बफर बना सकते हैं।
// 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;
}
लेकिन अगर आप एक छोटा बफर चाहते थे (उदाहरण के लिए यदि आप इसे एक बार में एक बफर संसाधित कर रहे थे) तो आप इसका उपयोग कर सकते हैं:
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;
}