Читання і запис двійкових файлів в базу даних ms sql 2018 з c # використовуючи oledb, записна книжка

Завдання - зберігати в базі даних MS SQL виконавчі файли. Це можуть бути виконувані файли (для оновлення програми при запуску), документи Word або інші важливі і потрібні дані. Як і багато подібних завдання вирішується вона просто, якщо знаєш за які саме методи і властивості бібліотечних класів треба смикати.

1. Прочитати файл з диска
2. Записати його в базу даних або додаючи новий рядок таблиці або оновлюючи вже існуючу
3. Прочитати з бази даних (під кодом конкретного файлу)
4. Записати на диск

0. Для зберігання файлів в таблиці бази даних треба цю таблицю створити. Яка несподіванка! Для тестових цілей можна створити таку таблицю

1. Читаємо двійковий файл з диска.

Наше завдання дуже проста - отримати масив всіх байтів файлу по його шляху. заодно отримаємо ім'я файлу і розширення - запас кишеню не тягне. Спеціально для цього в бібліотеці Net є кілька простих і приємних методів класу Path - GetFileName. GetExtension; і класу File - ReadAllBytes. Швидше за все розмір в кілобайтах теж можна отримати стандартним методом - лінь дивитися.

Звідки ми візьмемо шлях? У додатку WinForms можна скористатися стандартним діалогом відкриття файлів - це клас OpenFileDialog

2. Пишемо масив байтів byte [] в колонку VARBINARY (MAX) бази даних MS SQL

Робиться це абсолютно стандартними методами OleDbCommand з набором параметрів і вставкою поточної дати функцією GETDATE () sql сервера

або для оновлення файлу за кодом

3.Чітаем вміст поля VARBINARY (MAX) в масив байтів byte []

4. Записати на диск. Для вирішення цього завдання використовуємо класи BinaryWriter і FileStream

Для отримання шляху до файлу в додатку WinForms можна точно так само використовувати стандартний діалог збереження файлу - клас SaveFileDialog

І на завершення напишемо простенький клас для роботи з двійковими файлами