Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/34: Рейтинг темы: голосов - 34, средняя оценка - 4.85
3 / 3 / 2
Регистрация: 17.11.2014
Сообщений: 194

Добавление image в sql бд

10.05.2016, 21:04. Показов 6634. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Использую sqlconnection с таблицей *.mdf - в бд вводятся, удаляются, обновляются записи без проблем - а вот с картинкой получается каша: пример подключения и объявления полей:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\tables.mdf;Integrated Security=True;User Instance=True");
         
 
            //create dataset
            dataS = new DataSet();
 
            //create adapter
            adap = new SqlDataAdapter();
            adap.SelectCommand = new SqlCommand("SELECT * FROM Road", conn);
 
            adap.InsertCommand = new SqlCommand("INSERT INTO Road (КодТренировки, ДатаТренировки, Километраж, Продолжительность, ЧССмакс, ЧССсредн, Каденс, СкоростьМАКС, СкоростьСРЕДН, Группа, Track) Values(@Ct, @Dt, @Km, @TT, @HM, @HA, @Ka, @VM, @VA, @Gr, @map)", conn);
 
            adap.InsertCommand.Parameters.Add("@Ct", SqlDbType.Int, 3, "КодТренировки");
            adap.InsertCommand.Parameters.Add("@Dt", SqlDbType.Date, 1, "ДатаТренировки");
            adap.InsertCommand.Parameters.Add("@Km", SqlDbType.NChar, 3, "Километраж");
            adap.InsertCommand.Parameters.Add("@TT", SqlDbType.NChar, 3, "Продолжительность");
            adap.InsertCommand.Parameters.Add("@HM", SqlDbType.NChar, 3, "ЧССмакс");
            adap.InsertCommand.Parameters.Add("@HA", SqlDbType.NChar, 3, "ЧССсредн");
            adap.InsertCommand.Parameters.Add("@Ka", SqlDbType.NChar, 2, "Каденс");
            adap.InsertCommand.Parameters.Add("@VM", SqlDbType.NChar, 3, "СкоростьМАКС");
            adap.InsertCommand.Parameters.Add("@VA", SqlDbType.NChar, 3, "СкоростьСРЕДН");
            adap.InsertCommand.Parameters.Add("@Gr", SqlDbType.Bit, 1, "Группа");
            adap.InsertCommand.Parameters.Add("@map", SqlDbType.Image, 1, "Track");
Добавлять картинку в поле бд думаю выбором файла через обзор:
C#
1
2
3
4
5
6
7
8
9
10
11
12
 private void toolStripButton5_Click(object sender, EventArgs e)
        {
            OpenFileDialog file = new OpenFileDialog();
            file.Filter = "image files(*.jpg|*.jpg|all files (*.*)|*.*";
            file.InitialDirectory = "C:\\";
            file.Title = "Select Image for Upload";
            if (file.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.ImageLocation = file.FileName;
            }
 
        }
Однако как сохранить картинку в бд sql
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.05.2016, 21:04
Ответы с готовыми решениями:

Отображение Image из SQL Server 2012(тип Image) в ListView с использованием Binding
Подскажите есть ли возможность отображать изображения из SQL Server через Binding в ListView? При этом учитывая, что изображение хранится...

Добавление и изменение Image
Здравствуйте! Мне нужно чтобы gameobject_1 (цилиндр) влиял на изменение изображения, который находится в canvas...

Добавление image в БД Access
Здравствуйте. На Form1 изображения загружаются с БД таким образом: ...

7
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
10.05.2016, 22:20
Лучший ответ Сообщение было отмечено EvilSky как решение

Решение

Цитата Сообщение от EvilSky Посмотреть сообщение
как сохранить картинку
EvilSky, посмотрите прикрепленный архив. Строку подключения измените на свою, ну и количество полей (у меня всего два - имя файла типа NVChar и данные типа Image). Смысл там понятен, думаю разберетесь.
Вложения
Тип файла: rar SqlImageBaseDemo.rar (50.1 Кб, 186 просмотров)
1
3 / 3 / 2
Регистрация: 17.11.2014
Сообщений: 194
11.05.2016, 12:22  [ТС]
Спасибо за пример - очень хороший проект, но добавить свои поля я так и не смог пишет, что нужно добавить сколярную переменную...
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
11.05.2016, 13:18
Цитата Сообщение от EvilSky Посмотреть сообщение
пишет, что нужно добавить сколярную переменную...
Скорее всего, несовпадение по параметрам. Смотрите внимательно, что и где пропустили.
Ну или опишите ТЗ более полно, попробую по нему сделать вам пример.
0
3 / 3 / 2
Регистрация: 17.11.2014
Сообщений: 194
11.05.2016, 15:06  [ТС]
Ну вот использую такой метод работы с элементом dgv при его редактировании:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
  InitializeComponent();
            conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\tables.mdf;Integrated Security=True;User Instance=True");
         
 
            //create dataset
            dataS = new DataSet();
 
            //create adapter
            adap = new SqlDataAdapter();
            adap.SelectCommand = new SqlCommand("SELECT * FROM Road", conn);
 
            adap.InsertCommand = new SqlCommand("INSERT INTO Road (КодТренировки, ДатаТренировки, Километраж, Продолжительность, ЧССмакс, ЧССсредн, Каденс, СкоростьМАКС, СкоростьСРЕДН, Группа, Track) Values(@Ct, @Dt, @Km, @TT, @HM, @HA, @Ka, @VM, @VA, @Gr, @map)", conn);
 
            adap.InsertCommand.Parameters.Add("@Ct", SqlDbType.Int, 3, "КодТренировки");
            adap.InsertCommand.Parameters.Add("@Dt", SqlDbType.Date, 1, "ДатаТренировки");
            adap.InsertCommand.Parameters.Add("@Km", SqlDbType.NChar, 3, "Километраж");
            adap.InsertCommand.Parameters.Add("@TT", SqlDbType.NChar, 3, "Продолжительность");
            adap.InsertCommand.Parameters.Add("@HM", SqlDbType.NChar, 3, "ЧССмакс");
            adap.InsertCommand.Parameters.Add("@HA", SqlDbType.NChar, 3, "ЧССсредн");
            adap.InsertCommand.Parameters.Add("@Ka", SqlDbType.NChar, 2, "Каденс");
            adap.InsertCommand.Parameters.Add("@VM", SqlDbType.NChar, 3, "СкоростьМАКС");
            adap.InsertCommand.Parameters.Add("@VA", SqlDbType.NChar, 3, "СкоростьСРЕДН");
            adap.InsertCommand.Parameters.Add("@Gr", SqlDbType.Bit, 1, "Группа");
            adap.InsertCommand.Parameters.Add("@map", SqlDbType.Image, 1, "Track");
 
          
            adap.UpdateCommand = new SqlCommand("UPDATE Road SET КодТренировки= @Ct, ДатаТренировки= @Dt, Километраж= @Km, Продолжительность= @TT, ЧССмакс= @HM, ЧССсредн= @HA, Каденс= @Ka, СкоростьМАКС= @VM, СкоростьСРЕДН= @VA, Группа= @Gr, Track= @map", conn);
 
            adap.UpdateCommand.Parameters.Add("@Ct", SqlDbType.Int, 3, "КодТренировки");
            adap.UpdateCommand.Parameters.Add("@Dt", SqlDbType.Date, 1, "ДатаТренировки");
            adap.UpdateCommand.Parameters.Add("@Km", SqlDbType.NChar, 3, "Километраж");
            adap.UpdateCommand.Parameters.Add("@TT", SqlDbType.NChar, 3, "Продолжительность");
            adap.UpdateCommand.Parameters.Add("@HM", SqlDbType.NChar, 3, "ЧССмакс");
            adap.UpdateCommand.Parameters.Add("@HA", SqlDbType.NChar, 3, "ЧССсредн");
            adap.UpdateCommand.Parameters.Add("@Ka", SqlDbType.NChar, 2, "Каденс");
            adap.UpdateCommand.Parameters.Add("@VM", SqlDbType.NChar, 3, "СкоростьМАКС");
            adap.UpdateCommand.Parameters.Add("@VA", SqlDbType.NChar, 3, "СкоростьСРЕДН");
            adap.UpdateCommand.Parameters.Add("@Gr", SqlDbType.Bit, 1, "Группа");
            adap.UpdateCommand.Parameters.Add("@map", SqlDbType.Bit, 1, "Track");
            //read table Customers from DB to DataSet
 
            adap.DeleteCommand = new SqlCommand("DELETE From Road WHERE КодТренировки= @Ct", conn);
            adap.DeleteCommand.Parameters.Add("@Ct", SqlDbType.Int, 3, "КодТренировки");
            adap.Fill(dataS, "Road");
 
            //Create DGV and assign DataTable
            dgv = new DataGridView { Parent = this, Dock = DockStyle.Top, DataSource = dataS.Tables["Road"] };
        }
 
       
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            adap.Update(dataS.Tables["Road"]);
        }
На выходе получаю приложенную картинку, однако, ваш пример очень хорошо входит в логику проекта, но он (пример), довольно необычный для моей логики : в вашем примере используется модель имен:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 public void AddImageModel(ImageModel model) {
            string command = "INSERT INTO images VALUES(@name, @data, @Ct)";
            using (SqlConnection cnn = new SqlConnection(CONNECT_STR)) {
                cnn.Open();
                using (SqlCommand cmd = new SqlCommand(command, cnn)) {
                    SqlParameter param = new SqlParameter("@name", SqlDbType.NVarChar, int.MaxValue);
                  
                    param.Value = model.ImageName;
                    cmd.Parameters.Add(param);
 
                    param = new SqlParameter("@data", SqlDbType.Image, int.MaxValue);
                    param.Value = model.ImageData;
                    param = new SqlParameter("@Ct", SqlDbType.NChar, int.MaxValue);
                    param.Value = model.// вот тут я застопорился - ведь нужно объявить/создать в моделе имен, что находится в классе - новое пространство? 
 
                    cmd.ExecuteNonQuery();
                }
            }
        }
Миниатюры
Добавление image в sql бд  
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
11.05.2016, 15:33
Цитата Сообщение от EvilSky Посмотреть сообщение
он (пример), довольно необычный для моей логики
Это просто пример. Вам надо продумать свою модель данных, которая точно отражает объект, с которым планируется работать. Не зацикливайтесь на отображении (DataGrid и так далее), представление вторично. Сначала - модель, потом слой для работы с моделью и БД, а потом уже, когда все оттестировано (к примеру, в консоли) и работает, делаете интерфейс (какой угодно, формы, WPF). Смысл понятен?
Судя по вашему, у вас работа с какими-то тренировками. Так? Расскажите своими словами функционал приложения.
0
3 / 3 / 2
Регистрация: 17.11.2014
Сообщений: 194
11.05.2016, 17:16  [ТС]
Да - это приложение с базой данных,которая содержит 4 таблицы, каждая из которых представляет свой тип спорта, но это как бы не суть. В общем - думаю, что не хватает функционала, поэтому, для данного типа тренировки, решил добавить возможность сохранения картинок - эти картинки - будут в будущем трэки - gps маршрут на карте Яндекс, просто потом этот маршрут я буду скринить - обрезать и сохранять - а потом картинку добавлять под код тренировки. Вообщем в идеале - было бы здорово видеть на этой же форме, где располагаются результаты, по "допустим" выбору ячейки или кода тренировки - открывать трэк.- впрочем ваш пример идеальный)) Видимо буду потом наращивать на его примере тогда,как вы и посоветовали
0
3 / 3 / 2
Регистрация: 17.11.2014
Сообщений: 194
13.05.2016, 07:29  [ТС]
А как бы вы добавили хотя бы 1 поле в бд по тому примеру?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.05.2016, 07:29
Помогаю со студенческими работами здесь

Добавление png изображения в Image
Помогите а как png файл в image добавить я как то добавлял раньше типа что то там качал с инета дополнение какое то вспомнить никак не...

Добавление Image в запись ListView
Здравствуйте, мне надо добавить фото в запись от listview, я добавил imagelist в форму, но как программно добавить фото в выделенную...

Добавление изображения на Image, выдаёт ошибку #53
Доброго дня! Пыталась добавить изображение, выдаёт ошибку #53. Подскажите, как действовать? uses Jpeg; procedure...

Image в MS SQL и обратно
Столкнулся со следующей проблемой: в таблице есть поле фото (тип Image), куда необходимо загрузить картинку. Реализовано следующим образом....

Вывод Image из Sql
Есть sql колонка Image c типом даных varbinary(MAX) и хотелось бы вывести содержимое в контрол Image на вэб страницу. <asp:FormView...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой
Programma_Boinc 10.04.2026
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой Если на Windows стоит дискретная NVIDIA или AMD — можно отдать её вычислительную мощность реальным исследованиям. . . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru