Сохраняйте большие двоичные данные в 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 ...
Это позволяет записывать порции данных в ваш столбец без необходимости читать весь файл.