Чтение и запись структуры в 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 для картинки
    Ссылка на мой курс "Учебная практика", где я разрабатывал оконное приложение для библиотеки - • Программирование. Курс...

ความคิดเห็น • 42

  • @CrazyG777
    @CrazyG777 2 ปีที่แล้ว +1

    тип данных, который выделяет место до определенного количества символов, при этом хранит только столько символов сколько введено - nvarchar(количество символов)

    • @forsytee
      @forsytee  2 ปีที่แล้ว

      Спасибо!

  • @bohdanyankovych197
    @bohdanyankovych197 3 ปีที่แล้ว +1

    А как привязать несколько картинок к одним данным, например если есть в базе описание товара и несколько фото этого товара?

    • @forsytee
      @forsytee  3 ปีที่แล้ว +1

      Сделайте в классе поле "массив картинок" типа List, там будет динамическое количество картинок, от 0 до сколько хотите. Как это сделать в самой БД не знаю.

    • @eblonskii6520
      @eblonskii6520 2 ปีที่แล้ว

      Кому ещё нужен ответ: ебаните табличную часть в БДшке, там будет номер продукта и картинка к нему. Таким образом, будет
      1 продукт, 1 картинка
      1 продукт, 2 картинка
      1 продукт, 3 картинка
      А там потом в C# уже пользуйте, как угодно

  • @meetoo300
    @meetoo300 2 ปีที่แล้ว +2

    быстро и по сути, спасибо

    • @forsytee
      @forsytee  2 ปีที่แล้ว

      Большое вам спасибо, удачи!

  • @qmen4193
    @qmen4193 3 ปีที่แล้ว +2

    Можете исходник кинуть, очень надо.

    • @forsytee
      @forsytee  3 ปีที่แล้ว +1

      а смысл? бд у вас нет моей, без сервера этого (скаченного) тоже ничего не сработает а код там простой

    • @qmen4193
      @qmen4193 3 ปีที่แล้ว +1

      @@forsytee лень переписывать, если не сложно то можете скинуть

    • @forsytee
      @forsytee  3 ปีที่แล้ว +1

      @@qmen4193 вк дай я кину ссылку на облако

    • @qmen4193
      @qmen4193 3 ปีที่แล้ว +1

      @@forsytee вот так сможешь найти, @aleksandrless

    • @qmen4193
      @qmen4193 3 ปีที่แล้ว +1

      Синяя аватарка

  • @aptigroznensky3970
    @aptigroznensky3970 2 ปีที่แล้ว +1

    как раз были траблы с картинкой

    • @forsytee
      @forsytee  2 ปีที่แล้ว

      надеюсь теперь их нет

    • @aptigroznensky3970
      @aptigroznensky3970 2 ปีที่แล้ว +1

      @@forsytee ну я заморочился с показом картинки, потому что некоторых функций на видео в wpf нет и всё таки нашел как преобразовать байты в image . А вот то что то вы говорили что есть много уроков,не согласен. Почти у всех другие базы данных и когда ты новичок и не знаешь где что отличается и тем более у многих на winforms то сложно, спасибо за видео оно очень помогло

    • @forsytee
      @forsytee  2 ปีที่แล้ว +1

      @@aptigroznensky3970 в WPF к своему великому стыду я не работал никогда. Я не снимаю видео которые уже на ютубе есть, стараюсь только уникальные штуки снимать, но тут конечно уроков много по идее есть по БД. Рад что помог

  • @ArchDevWorkshop
    @ArchDevWorkshop 2 ปีที่แล้ว +1

    Соболь привет!
    Большое спасибо за видео!
    Можно тоже попрошу код для блока с картинками? В ВК тебя нет, со страницей трабл. Как тебя найти?
    Также подскажи пожалуйста, какой тип данных выбрать для таблиц?

    • @forsytee
      @forsytee  2 ปีที่แล้ว +2

      Привет. В телеграмме есть наш канал. Про тип данных не понял тебя. Код готовый могу дать

    • @ArchDevWorkshop
      @ArchDevWorkshop 2 ปีที่แล้ว +1

      @@forsytee Под типом данных имею ввиду image, blob и т.д. Что в базе MySql выставить?

    • @forsytee
      @forsytee  2 ปีที่แล้ว +1

      @@ArchDevWorkshop никогда не работал с Mysql

    • @ArchDevWorkshop
      @ArchDevWorkshop 2 ปีที่แล้ว +1

      @@forsytee а для своей базы какой тип данных выбираешь?

    • @forsytee
      @forsytee  2 ปีที่แล้ว +1

      @@ArchDevWorkshop Так в видео по идее же все показал. Image наверное

  • @win32filecoder.hydracrypt.15
    @win32filecoder.hydracrypt.15 3 ปีที่แล้ว +1

    Спасибо за картинки. Для диплома надо хранить в базе.

    • @forsytee
      @forsytee  3 ปีที่แล้ว

      ОХ, нихера себе, 41 лайк. А еще и года не прошло, не думал что ролик так зайдет людям, случайно заметил - приятно прямо. Я даже не хотел особо его снимать, так как про бд море видео, приятно удивлен. Удачи вам

    • @win32filecoder.hydracrypt.15
      @win32filecoder.hydracrypt.15 3 ปีที่แล้ว +1

      @@forsytee Короче спасибо большое, делал на основе принципов из видео. Всё довольно несложно. Я делал picturebox в отдельной форме, картинки выбираются в зависимости от того, какую запись выбираю в датагриде (currentrow.index в select и погнали грузить картинку).

    • @forsytee
      @forsytee  3 ปีที่แล้ว

      @@win32filecoder.hydracrypt.15 Я понял, за строчкой в датагриде привязана картинка и по клике строки вы ее открываете, ну уже виды реализаций никто менять не запрещал. Рад что смогли сами это сделать. Порой мне в личку пишут вопросы мол "помоги, сделай за меня" а по сути просят то что вы сделали, код поменять в 1 месте и перенести в другой файл или типо того, шаг влево шаг вправо и уже люди не понимают как это работает...

    • @win32filecoder.hydracrypt.15
      @win32filecoder.hydracrypt.15 3 ปีที่แล้ว +1

      @@forsytee Я в датагрид вытаскиваю ключик из базы, делаю его невидимым в самом гриде. Картинки никакой в датагриде нема. По ключику выделенной строки делаю запрос в базу и вытаскиваю нужную картинку. Если же добавлять надо, то делаю как у вас, запоминаю путь к файлу через dialog, потом уже его вставляю когда идёт перегонка в поток байт. На уровне класса, ниже формы уже идёт обращение и запрос на insert забирает этот массив. Сам массив передаётся через конструктор при создании объекта. Поскольку ключи в базе я сделал identity (1,1), то с их вводом и уникальностью париться вообще не надо. Собственно по ключам работать очень удобно. Я даже приловчился делать так, чтобы при выделении строки в датагриде в combobox выбиралась соответствующая запись (если засунуть id в качестве источника-значения он же SelectedValue, это делает работу с комбиками и базами максимально удобной). И вообще обожаю ADO.NET, со времён колледжного диплома в 2018 году влюбился в эту технлогию. Сейчас пишу универский диплом и это просто замечательно.

    • @forsytee
      @forsytee  3 ปีที่แล้ว

      @@win32filecoder.hydracrypt.15 Ну да, я сделал скажем так костыль, заставляя вводить айди, надо проверить что он идет линейно и что нет повторки. Самонаращивание айди гораздо упростит задачу. Ну хорошо что смогли это все сделать сами.