Сохраняйте большие двоичные данные в sql DB с помощью C # - PullRequest
0 голосов
/ 17 января 2011

Мне нужен код для хранения (в конечном итоге больших) файлов в БД с использованием C #.

Я использую следующее решение: (Я использую столбец varbinary (MAX) в БД)

1) Создать SqlCommand

2) Создать SqlParameter

3) Установить параметр. Значение = File.ReadAllBytes (filePath)

4) Выполнить SqlCommand

Есть ли более эффективное решение? Поскольку файл может быть большим, я боюсь проблем с производительностью при чтении всех байтов в память и последующем сохранении их в БД.

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 06 января 2012

Я столкнулся с той же проблемой прямо сейчас.Есть способ последовательно записывать в поля varbinary.См. Эту статью: «Загрузка и выгрузка изображений с SQL Server через ASP.NET MVC» http://www.codeproject.com/KB/aspnet/streamingblobhttp.aspx

В ней показан способ использования команды, подобной следующей:

UPDATE <table> SET <field>.WRITE(@data, null, null) WHERE ...

Это позволяет записывать чанкиданных в ваш столбец без необходимости читать весь файл.

1 голос
/ 17 января 2011

То, что у вас есть, - лучшее, что вы можете получить с колонкой varbinary(MAX).Несмотря на то, что вы можете передавать данные из базы данных, их невозможно передать в .

...