private byte[] GetBytes(string field, SQLiteDataReader reader) { const int CHUNK_SIZE = 512 * 1024; char[] buffer = new char[CHUNK_SIZE]; long bytesRead; long fieldOffset = 0; using (MemoryStream stream = new MemoryStream()) { int fieldPos = reader.GetOrdinal(field); if (reader.GetValue(fieldPos) != DBNull.Value) { while ((bytesRead = reader.GetChars(fieldPos, fieldOffset, buffer, 0, buffer.Length)) > 0) { stream.Write(Encoding.Default.GetBytes(buffer), 0, (int)bytesRead); fieldOffset += bytesRead; } } return(stream.ToArray()); } }