С Новым годом! Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
 Аватар для FedorF
56 / 1 / 1
Регистрация: 11.06.2012
Сообщений: 51

Добавление записи в DataGridView, расположенном на одной форме, через другую форму

09.05.2014, 16:23. Показов 4514. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть форма "Пациенты", на ней datagridview, данные в datagridview загружаются из таблицы БД, на форме есть кнопки: сохранить, удалить, добавить, все стандартно) При нажатии на кнопку "Добавить" появляется другая форма для добавления нового пациента. Пациента добавляю, форма редактирования закрывается, но новая запись появляется в 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
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
55
56
57
58
59
60
61
62
63
64
65
 public partial class Patient_form : Form
    {
        public Patient_form()
        {
            InitializeComponent();
        }
 
        //создаем подключение
        public SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\Elena\\Desktop\\ГОСЫ и ДИПЛОМ\\07.04.2014\\DB1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
        SqlCommand cmd = new SqlCommand();
 
        SqlDataAdapter da = new SqlDataAdapter();
        public DataSet ds1; 
        SqlCommandBuilder cb;
 
        private void Patient_form_Load(object sender, EventArgs e)
        {
            ds1= new DataSet();
            // открываем соединение
            con.Open();
            cmd = new SqlCommand("SELECT * FROM Patient", con);
            da = new SqlDataAdapter(cmd);
 
            // заполняем Dataset адаптером
            da.Fill(ds1, "Patient");
            dataGridView1.DataSource = ds1;
            dataGridView1.DataMember = "Patient";
 
            //присваиваем заголовки столбцам DataGridView
            dataGridView1.Columns[0].HeaderText = "Номер";
            dataGridView1.Columns[1].HeaderText = "Фамилия";
            dataGridView1.Columns[2].HeaderText = "Имя";
            dataGridView1.Columns[3].HeaderText = "Отчество";
            dataGridView1.Columns[4].HeaderText = "Дата рождения";
 
            //задаем ширину столбцов
            dataGridView1.Columns[0].Width = 80;
            dataGridView1.Columns[1].Width = 140;
            dataGridView1.Columns[2].Width = 140;
            dataGridView1.Columns[3].Width = 160;
            dataGridView1.Columns[4].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
 
            
 
            // делаем первый столбец DataGridView дрстпным только для чтения
            dataGridView1.Columns[0].ReadOnly = true;
 
            //делаем привязки
            textBox1.DataBindings.Add("Text", ds1, "Patient.ID_patient");
            textBox2.DataBindings.Add("Text", ds1, "Patient.SurName");
            textBox3.DataBindings.Add("Text", ds1, "Patient.Name");
            textBox4.DataBindings.Add("Text", ds1, "Patient.PatronymicName");
            dateTimePicker1.DataBindings.Add("Text", ds1, "Patient.Date_of_birth" );
            
            
            cb = new SqlCommandBuilder(da);
            con.Close();
        }
 
        //открытие формы на добавление нового пациента
        private void button2_Click(object sender, EventArgs e)
        {
            Patient_add_form patientaddfrm = new Patient_add_form();
            patientaddfrm.Show();
        } }

Код формы добавления нового пациента:

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
private void Patient_add_form_Load(object sender, EventArgs e)
        {
            
 
           con.Open();
           cmd = new SqlCommand("SELECT * FROM Patient", con);
           da = new SqlDataAdapter(cmd);
 
            // заполняем Dataset адаптером
            da.Fill(ds1, "Patient");
            con.Close();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text != "" && textBox2.Text != "" && textBox3.Text !="" && textBox4.Text !="" && dateTimePicker1.Value !=null)
            {
 
                con.Open();
                SqlCommand cmd = new SqlCommand("INSERT INTO Patient (ID_patient, SurName, Name, PatronymicName, Date_of_birth) VALUES (@Id, @SurName, @Name, @Pat, @Date)", con);
                cmd.Parameters.AddWithValue("@Id", textBox1.Text);
                cmd.Parameters.AddWithValue("@SurName", textBox2.Text);
                cmd.Parameters.AddWithValue("@Name", textBox3.Text);
                cmd.Parameters.AddWithValue("@Pat", textBox4.Text);
                cmd.Parameters.AddWithValue("@Date", dateTimePicker1.Value);
 
                cmd.ExecuteNonQuery();
                da.Update(ds1, "Patient");
                ds1.AcceptChanges();
                con.Close();
 
 
                this.Close();
            }
            else
            {
                MessageBox.Show("Ошибка! Поля не заполнены!");
            }
        }
Миниатюры
Добавление записи в DataGridView, расположенном на одной форме, через другую форму  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.05.2014, 16:23
Ответы с готовыми решениями:

Добавление новой записи через другую форму без grid
Вообщем, дошла до этого момента и пока не получается сдвинуться. Работаю в 6-м фоксе. Существует много форм. В одной из форм пусть form1...

Перенос данных с формы и одной ячейки dataGridView в другую форму и ячейку dataGridView
Подскажите пожалуйста, у меня есть две таблицы которые выводятся на разных формах в dataGridView как сделать так что бы допустим с столбца...

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

4
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
09.05.2014, 17:17
У тебя неверный подход. Ты второй формой вносишь изменения сразу в БД и, естественно, ранее считанный набор данных первой формы ничего об этом не знает. Надо добавлять введённую информацию в имеющийся набор и потом давать команду сохранения из первой формы, когда диалог закроется.
1
 Аватар для FedorF
56 / 1 / 1
Регистрация: 11.06.2012
Сообщений: 51
09.05.2014, 17:57  [ТС]
Попробовала сделать так:

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
public partial class Patient_add_form : Form
    {
 
        
 
        public Patient_add_form()
        {
            InitializeComponent();
            
        }
 
 
        Patient_form patfrm;
 
       // добавление новой записи
       private void button1_Click(object sender, EventArgs e)
        {
            
            if (textBox1.Text != "" && textBox2.Text != "" && textBox3.Text !="" && textBox4.Text !="" && dateTimePicker1.Value !=null)
            {
 
               patfrm.con.Open();
                SqlCommand cmd = new SqlCommand("INSERT INTO Patient (ID_patient, SurName, Name, PatronymicName, Date_of_birth) VALUES (@Id, @SurName, @Name, @Pat, @Date)", patfrm.con);
                cmd.Parameters.AddWithValue("@Id", textBox1.Text);
                cmd.Parameters.AddWithValue("@SurName", textBox2.Text);
                cmd.Parameters.AddWithValue("@Name", textBox3.Text);
                cmd.Parameters.AddWithValue("@Pat", textBox4.Text);
                cmd.Parameters.AddWithValue("@Date", dateTimePicker1.Value);
 
                cmd.ExecuteNonQuery();
                patfrm.da.Update(patfrm.ds1, "Patient");
                patfrm.ds1.AcceptChanges();
                patfrm.con.Close();
 
 
                this.Close();
            }
            else
            {
                MessageBox.Show("Ошибка! Поля не заполнены!");
            }
        }
nmcf, вы это имели в виду?

Цитата Сообщение от nmcf Посмотреть сообщение
потом давать команду сохранения из первой формы, когда диалог закроется
Можете, пожалуйста, пояснить, как это?

Добавлено через 7 минут
Кажется поняла, сейчас попробую)
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
09.05.2014, 17:59
Я тебе в ЛС написал.
0
42 / 15 / 1
Регистрация: 06.12.2019
Сообщений: 429
20.06.2020, 20:10
FedorF, Скинь проект пожалуйста )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.06.2020, 20:10
Помогаю со студенческими работами здесь

Добавление одной формы в другую форму
Добрый день! Есть некая библиотека, которая получает данные по COM порту и выводит их в свою форму. Сейчас стоит задача внедрить эту...

Передача данных с DataGridView из одной формы, в другую форму с TextBox
Всем Здрасти. Перерыл уже кучу информации. перепробовал кучу методов, но никак не могу сделать передачу выбранной строки DataGridView...

Вытянуть из базы некоторые столбцы на одной форме, и скопировать их в другую форму
помогите пожалуйста) необходимо вытянуть из базы некоторые столбци на одной форме , и скопировать их в другую форму

По нажатии кнопке в форме frm надо записать данные в DataGridView, расположенном на Form1
Есть 2 формы - Form1 и Form2 При запуске программы: Application.Run(new Form1()); В ходе работы создаю объект: Form2 frm...

Поиск в форме через другую форму
Прошу подсказать мне каким образом можно реализовать задачу: Есть форма(Форма0) поиска с двумя полями. При вводе в первое поле...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru