Le Streaming de données VARBINARY à partir de SQL Server en C#

Je suis en train de servir des données d'image stockées dans un VARBINARY(MAX) champ dans la base de données à l'aide de ASP.Net. Maintenant, le code est le remplissage d'un tableau de données, puis en tirant le tableau d'octets de la DataRow et en poussant le tableau d'octets dans la réponse. Je me demandais si il existe un moyen de plus ou moins le flux de données à partir de SQL Server dans la réponse sans avoir à le maréchal autour de ces immenses tableaux d'octets (puisque les images sont grandes, elles provoquent des OutOfMemoryExceptions). Est-il une classe/un mécanisme pour qui?

Le code actuel ressemble plus ou moins comme:

DataTable table = new DataTable();
SqlDataAdapter adapter = new SqlDataAdapter(commandText, connectionString);
adapter.Fill(table);
DataRow row = table.Rows[0];
byte[] imageData = row[0] as byte[];
if(imageData != null)
{
  Response.Clear();
  Response.BinaryWrite(imageData);
  Response.End();
}

Merci à l'avance de toute aide est appréciée.

avez-vous essayé d'utiliser directement un SqlDataReader?

OriginalL'auteur mhildreth | 2011-02-18