Завдання - зберігати в базі даних 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
І на завершення напишемо простенький клас для роботи з двійковими файлами