Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
0 / 0 / 1
Регистрация: 27.01.2015
Сообщений: 107

Обновить второй dataGridView при выборе строки в первом (Клиенты -> Контакты)

25.05.2016, 07:11. Показов 4493. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
на форме имеется две таблицы dataGridView. данные в этих таблицах отображается из БД SQL Server. допустим, две таблицы имею название Клиент(id, ФИО, Дата рождения) и Контакты(id, ФИО клиента, Тип контакта, описание), естественно поля ID (таблица Клиент) и ФИО клиента (таблица Контакты клиентов) связывают по ключевому полю.
нужно, чтобы при выделение определенной строки из таблицы Клиентов, во второй таблице dataGridView отображалось контакт определенного клиента.
Вот код
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
int id = 0;
            id = Convert.ToInt32(dataGridView1.Rows[dataGridView1.SelectedCells[0].RowIndex].Cells[0].Value);
            IDbConnection connection = new SqlConnection(PhotoGrapher.Properties.Settings.Default.photoGrapherConnectionString);
            connection.Open();
            //запрос на удаление
            IDbCommand cmd = new SqlCommand("SELECT id, ФИО клиента, тип контакта, описание FROM Контакты INNER JOIN Контакты ON Контакты.ФИО клиента=КЛИЕНТ.id WHERE id= @id ");
            cmd.Connection = connection;
            cmd.Parameters.Add(new SqlParameter("@id", id));//id
            IDataReader reader = cmd.ExecuteReader();
            int i = 0;
 
            while (reader.Read())
            {
                 //отображают данные из таблицы Контакты
                dataGridView4.Rows.Add();
                dataGridView4.Rows[i].Cells[0].Value = reader.GetInt32(0); 
                dataGridView4.Rows[i].Cells[1].Value = reader.GetString(1); 
                dataGridView4.Rows[i].Cells[2].Value = reader.GetString(2); 
                dataGridView4.Rows[i].Cells[3].Value = reader.GetString(3); 
                dataGridView4.Rows[i].Cells[4].Value = reader.GetString(4); 
                i++;
            }
            reader.Close();
            cmd.ExecuteNonQuery();
            connection.Close();
может я в запросе напортачила или в коде?! помогите, только именно по этому коду. Потому что он работает по сути, только не правильно реагирует.

Добавлено через 17 часов 10 минут
Я всё еще нуждаюсь в помощи
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.05.2016, 07:11
Ответы с готовыми решениями:

Обновить второй dataGridView при выборе строки в первом за счет БД SQL
Ниже прописан код, он работает, но есть одно НО. суть работы кода. на форме имеется две таблицы dataGridView. данные в этих таблицах...

Показать второй select при выборе пункта в первом
Привет программистам! Подскажите пожалуйста, вот у меня есть, к примеру, открывающийся список: <select> ...

При выборе категории в первом DropDownList второй должен изменяться
Здравстуйте! Второй день бьюсь на этими дропами.Цель такая при выборе категории в 1 дроплисте... 2 должен изменяться... вот что у меня...

26
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
07.06.2016, 23:42
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от DeathDark Посмотреть сообщение
ваш пример не понятен из-за SQLLite
Ну так измените префикс SQLite на Sql, измените строку подключения и используйте.
1
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 12
08.06.2016, 11:16
Спасибо, я уже пробовал менять в вашей работе, у меня другой вопрос, код что был представленный в самом начале , он имеет место быть ? просто я ему не могу ладу дать :с
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
08.06.2016, 14:39
Цитата Сообщение от DeathDark Посмотреть сообщение
код что был представленный в самом начале , он имеет место быть ?
Не понял сути вопроса.
0
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 12
08.06.2016, 15:14
Ну там был представлен код

C#
1
2
3
4
5
private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            //Сюда вставляем код 
            SqlCommand("SELECT id, ФИО клиента, тип контакта, описание FROM Контакты WHERE id= "+dataGridView1.SelectedRows[0].Cells[0].Value+ " ");
        }
Этот код может работать или он вообще не рабочий( я имею ввиду правильную ли имеет конструкцию ?) ? Я просто решил его попробовать ну и у меня есесна не работает -_- !
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
08.06.2016, 20:02
Цитата Сообщение от DeathDark Посмотреть сообщение
Этот код может работать
Ну скажем так, если привести его в нормальный вид, то может.
Имена столбцов заключить в квадратные скобки и параметр заключить в одинарные кавычки.
0
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 12
08.06.2016, 20:16
У меня все таблицы из одного названия, а не могли бы пример привести, я вот пробовал, но у меня ошибка выскакивала :С

Добавлено через 10 минут
Вот я так писал

C#
1
 IDbCommand cmd = new SqlCommand("SELECT * FROM PrisTable INNER JOIN (Вот тут что писать) ON (и сдесь тоже не понятно) WHERE id_postav", + dataGridView1.SelectedRows[0].Cells[0].Value+ " );
Но увы :С
0
C# = ♫♪♫♪♪♫
 Аватар для Sanek32
57 / 56 / 18
Регистрация: 02.08.2014
Сообщений: 283
09.06.2016, 09:45
DeathDark, INNER JOIN вам не нужен. Вы делаете WHERE по ID который выбран в текущий момент
C#
1
 WHERE id_postav ='" + dataGridView1.SelectedRows[0].Cells[0].Value+ "'";
В методе
C#
1
dataGridView1_CellEnter
вы должны написать код на загрузку данных в dataGridView. Метод запускается когда произошло событие CellEnter в dataGridView1.

Добавлено через 2 минуты
Цитата Сообщение от DeathDark Посмотреть сообщение
Этот код может работать или он вообще не рабочий( я имею ввиду правильную ли имеет конструкцию ?) ? Я просто решил его попробовать ну и у меня есесна не работает -_- !
Это просто пример. Конечно надо соблюсти правила SQL
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.06.2016, 09:45

Появление ошибки IndexOutOfRangeException при выборе строки в DataGridView
Имеем пустой DataGridView. Считываем с бд в лист данные. Привязываем к DGW этот лист через DataSource. Дальше, при добавлении в лист...

Как при выборе строки в DataGridView вывести информацию из связанных таблиц
Здравствуйте. Подскажите пожалуйста. Имеется база данных в которой находятся 5 связанных между собой таблиц. Имеется программа, в которой...

Обновить DataGridView первой формы из второй
Здравствуйте ув. форумчане! Помогите пожалуйста, так как опыта мало прошу сильно не судить! У меня есть две формы: На первой(Form1)...

При нажатии на одной из записи в первом DataGridView открыть новую форму с другим DataGridView
Здравствуйте,форумчане. Нужна Ваша помощь.Суть такова... у меня есть форма с DataGridView(список товаров) и есть вторая форма с др...

Работа с select. Обработка второго, при выборе в первом
Как сделать, чтобы при выборе в первом, стал отображаться второй? Данный код не хочет работать. <select name='sel1'...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru