Чтение и запись структуры в SQL-сервер на С#. Базовые запросы к БД. Работа с картинкой в БД.
ฝัง
- เผยแพร่เมื่อ 30 ก.ย. 2024
- Первая часть видео - вводная, там информация, доступная и без меня в Интернете, я решил просто освежить её для зрителей, далее идёт новая информация - интересная)
В этом ролике я расскажу:
- Библиотека System.Data.Sql
- Библиотека System.Data.SqlClient
- Классы SqlCommand, SqlConnection и SqlDataReader
- Создание базы данных
- Создание таблицы с полями
- Заполнение таблицы в БД
- Установка подключения к SQL-серверу
- Отправка запросов INSERT, UPDATE, DELETE и SELECT
- Работа с простыми полями (дробное число и строка)
- Запись структуры в SQL-сервер
- Чтение структуры из SQL-сервера
- Вывод структуры данных из SQL-сервера в текстовый файл
- Динамический массив структуры - List
- Работа с картинкой в SQL-сервере
- Работа с массивом байт на C#
- Работа с OpenFileDialog
- Классы BinaryReader и MemoryStream
- Отправка запросов INSERT, UPDATE, DELETE и SELECT для картинки
Ссылка на мой курс "Учебная практика", где я разрабатывал оконное приложение для библиотеки - • Программирование. Курс...
тип данных, который выделяет место до определенного количества символов, при этом хранит только столько символов сколько введено - nvarchar(количество символов)
Спасибо!
А как привязать несколько картинок к одним данным, например если есть в базе описание товара и несколько фото этого товара?
Сделайте в классе поле "массив картинок" типа List, там будет динамическое количество картинок, от 0 до сколько хотите. Как это сделать в самой БД не знаю.
Кому ещё нужен ответ: ебаните табличную часть в БДшке, там будет номер продукта и картинка к нему. Таким образом, будет
1 продукт, 1 картинка
1 продукт, 2 картинка
1 продукт, 3 картинка
А там потом в C# уже пользуйте, как угодно
быстро и по сути, спасибо
Большое вам спасибо, удачи!
Можете исходник кинуть, очень надо.
а смысл? бд у вас нет моей, без сервера этого (скаченного) тоже ничего не сработает а код там простой
@@forsytee лень переписывать, если не сложно то можете скинуть
@@qmen4193 вк дай я кину ссылку на облако
@@forsytee вот так сможешь найти, @aleksandrless
Синяя аватарка
как раз были траблы с картинкой
надеюсь теперь их нет
@@forsytee ну я заморочился с показом картинки, потому что некоторых функций на видео в wpf нет и всё таки нашел как преобразовать байты в image . А вот то что то вы говорили что есть много уроков,не согласен. Почти у всех другие базы данных и когда ты новичок и не знаешь где что отличается и тем более у многих на winforms то сложно, спасибо за видео оно очень помогло
@@aptigroznensky3970 в WPF к своему великому стыду я не работал никогда. Я не снимаю видео которые уже на ютубе есть, стараюсь только уникальные штуки снимать, но тут конечно уроков много по идее есть по БД. Рад что помог
Соболь привет!
Большое спасибо за видео!
Можно тоже попрошу код для блока с картинками? В ВК тебя нет, со страницей трабл. Как тебя найти?
Также подскажи пожалуйста, какой тип данных выбрать для таблиц?
Привет. В телеграмме есть наш канал. Про тип данных не понял тебя. Код готовый могу дать
@@forsytee Под типом данных имею ввиду image, blob и т.д. Что в базе MySql выставить?
@@ArchDevWorkshop никогда не работал с Mysql
@@forsytee а для своей базы какой тип данных выбираешь?
@@ArchDevWorkshop Так в видео по идее же все показал. Image наверное
Спасибо за картинки. Для диплома надо хранить в базе.
ОХ, нихера себе, 41 лайк. А еще и года не прошло, не думал что ролик так зайдет людям, случайно заметил - приятно прямо. Я даже не хотел особо его снимать, так как про бд море видео, приятно удивлен. Удачи вам
@@forsytee Короче спасибо большое, делал на основе принципов из видео. Всё довольно несложно. Я делал picturebox в отдельной форме, картинки выбираются в зависимости от того, какую запись выбираю в датагриде (currentrow.index в select и погнали грузить картинку).
@@win32filecoder.hydracrypt.15 Я понял, за строчкой в датагриде привязана картинка и по клике строки вы ее открываете, ну уже виды реализаций никто менять не запрещал. Рад что смогли сами это сделать. Порой мне в личку пишут вопросы мол "помоги, сделай за меня" а по сути просят то что вы сделали, код поменять в 1 месте и перенести в другой файл или типо того, шаг влево шаг вправо и уже люди не понимают как это работает...
@@forsytee Я в датагрид вытаскиваю ключик из базы, делаю его невидимым в самом гриде. Картинки никакой в датагриде нема. По ключику выделенной строки делаю запрос в базу и вытаскиваю нужную картинку. Если же добавлять надо, то делаю как у вас, запоминаю путь к файлу через dialog, потом уже его вставляю когда идёт перегонка в поток байт. На уровне класса, ниже формы уже идёт обращение и запрос на insert забирает этот массив. Сам массив передаётся через конструктор при создании объекта. Поскольку ключи в базе я сделал identity (1,1), то с их вводом и уникальностью париться вообще не надо. Собственно по ключам работать очень удобно. Я даже приловчился делать так, чтобы при выделении строки в датагриде в combobox выбиралась соответствующая запись (если засунуть id в качестве источника-значения он же SelectedValue, это делает работу с комбиками и базами максимально удобной). И вообще обожаю ADO.NET, со времён колледжного диплома в 2018 году влюбился в эту технлогию. Сейчас пишу универский диплом и это просто замечательно.
@@win32filecoder.hydracrypt.15 Ну да, я сделал скажем так костыль, заставляя вводить айди, надо проверить что он идет линейно и что нет повторки. Самонаращивание айди гораздо упростит задачу. Ну хорошо что смогли это все сделать сами.