title: Streaming VARBINARY data from SQL Server in C#
body: <p>I'm trying to serve image data stored in a VARBINARY(MAX) field in the database using ASP.Net. Right now, the code is filling a data table, then pulling the byte array out of the DataRow and pushing the byte array into the response. I'm wondering if there's a way to more-or-less stream the data from the SQL Server into the response without having to marshal around these huge byte arrays (since the images are large, they cause OutOfMemoryExceptions). Is there a class/mechanism for that? </p>
  
  <p>The current code looks more or less like:</p>
  
  <pre><code>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();
  }
  </code></pre>
  
  <p>Thanks in advance - any help is appreciated.</p>