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

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

Решение, которое я использую, выглядит следующим образом: (я использую столбец varbinary(MAX) в БД)

1) Создать SqlCommand

2) Создать SqlParameter

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

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

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

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

2 ответа

Решение

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

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

Это показывает способ использовать команду как:

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

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

Другие вопросы по тегам