Я бы вообще не использовал параметр byte[]
для IDbCommand
. Что если ваш PDF размером 100 Мб? Насколько я знаю, это получило бы все эти 100 Мб из вашей базы данных (нуждающихся в таком количестве памяти на вашем сервере) перед отправкой результата запрашивающему браузеру. Теперь подумайте о том, чтобы получать несколько одновременных запросов для разных PDF-файлов примерно такого размера ... в секунду ... Это не очень масштабируемо.
Для возможного решения, пожалуйста, прочитайте "Blob + Stream = BlobStream" , статью, которую я написал для .NET Magazine здесь, в Нидерландах пару лет назад. Этот метод использует команды SQL Server для доступа к частям BLOB из Stream
производного класса.
Статья написана на голландском языке, но пример кода , который идет с ней, должен быть достаточным для начала работы. Кроме того, Питер Де Йонге, кажется, написал статью о CodeProject , которая немного расширяет мою статью, обобщая ее не только для image
столбцов в SQL Server. Эта статья на английском языке.
Надеюсь, это поможет вам решить вашу проблему.