Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 10.12.2015
Сообщений: 2
MS SQL

Как связать таблицы с разных форм в Visual Studio?

13.05.2017, 18:20. Показов 5388. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть две связанные таблицы (картинка будет в документе). Личные данные ребёнка находятся на форме 2, посещения на форме 4. Связываются таблицы по Номеру пациента. Нужно, чтобы при выборе номера пациента с формы 2 показывались посещения выбранного пациента на форме 4. Как это реализовать?
Я пробовала по примеру с данной темы https://www.cyberforum.ru/ado-... 46686.html , но у меня выдаёт ошибку "Неправильный синтаксис около конструкции ",". " (Код и скрины приложу).
Помогите пожалуйста!!!
База данных MS sql server







Program.cs
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
 
namespace WindowsFormsApplication5
{
    static class Program
    {
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        //[STAThread]
 
        public static string ConnectionString;  // строка подключения
        public static string str2;                   // номер ИД
        public static string SQLstr;               // запрос выборки
 
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form2());
        }
    }
}

Form2.cs
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
 
namespace WindowsFormsApplication5
{
 
    public partial class Form2 : Form
    {
 
        public Form2()
        {
            InitializeComponent();
 
        }
 
 
        private void личные_данные_ребёнкаBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
            this.Validate();
            this.личные_данные_ребёнкаBindingSource.EndEdit();
            this.tableAdapterManager.UpdateAll(this.invalidBDDataSet);
        }
 
        private void Form2_Load(object sender, EventArgs e)
        {
            // TODO: данная строка кода позволяет загрузить данные в таблицу "invalidBDDataSet.Личные_данные_ребёнка". При необходимости она может быть перемещена или удалена.
            this.личные_данные_ребёнкаTableAdapter.Fill(this.invalidBDDataSet.Личные_данные_ребёнка);
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            {
                
                SqlConnection vid = new SqlConnection("Data Source=MYCOMP;Initial Catalog=invalidBD;Integrated Security=True");
                SqlDataAdapter личные_данные_ребёнкаTableAdapter =
                    new SqlDataAdapter("Select * from Личные_данные_ребёнка", vid);
                DataTable n = new DataTable();
 
                личные_данные_ребёнкаTableAdapter.Fill(n);
 
                личные_данные_ребёнкаBindingSource.DataSource = n;
 
                личные_данные_ребёнкаBindingSource.Filter = "Фамилия = \'" + textBox1.Text + "\'";
 
                личные_данные_ребёнкаDataGridView.DataSource = личные_данные_ребёнкаBindingSource;
 
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            //Сбросить всё
            личные_данные_ребёнкаBindingSource.Filter = null;
        }
 
            private void button3_Click(object sender, EventArgs e)
            {
                
 
            Form3 b = new Form3();
            b.Show();
 
            }
 
 
            private void button4_Click(object sender, EventArgs e)
            {
                WindowsFormsApplication5.Program.ConnectionString = "Data Source=MYCOMP;Initial Catalog=invalidBD;Integrated Security=True";
                WindowsFormsApplication5.Program.str2 = this.личные_данные_ребёнкаDataGridView.Rows[this.личные_данные_ребёнкаDataGridView.CurrentRow.Index].Cells[0].Value.ToString();
                WindowsFormsApplication5.Program.SQLstr = "Номер_посещения, Номер_пациента, Дата_посещения, Код_диагноза FROM dbo.Посещение where (Номер_пациента=" +
                WindowsFormsApplication5.Program.str2 + ")";
 
                Form4 Посещение = new Form4();
                Посещение.Show();
            }
 
        }
    }

Form4.cs
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
 
namespace WindowsFormsApplication5
{
    public partial class Form4 : Form
    {
        //SqlDataAdapter SqlDataAdapter;
        public Form4()
        {
            InitializeComponent();
        }
 
        private void посещениеBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
            this.Validate();
            this.посещениеBindingSource.EndEdit();
            this.tableAdapterManager.UpdateAll(this.invalidBDDataSet);
 
        }
 
        private void Form4_Load(object sender, EventArgs e)
        {
 
            // TODO: данная строка кода позволяет загрузить данные в таблицу "invalidBDDataSet.Посещение". При необходимости она может быть перемещена или удалена.
            //this.посещениеTableAdapter.Fill(this.invalidBDDataSet.Посещение);
 
            // здесь строку подключения изменишь на свою, имя сервера там, имя базы и т.д
            WindowsFormsApplication5.Program.ConnectionString = "Data Source=MYCOMP;Initial Catalog=invalidBD;Integrated Security=True";
            SqlDataAdapter dA = new SqlDataAdapter(WindowsFormsApplication5.Program.SQLstr, WindowsFormsApplication5.Program.ConnectionString);
            dA.Fill(this.invalidBDDataSet, "Посещение");
            this.посещениеDataGridView.DataSource = this.invalidBDDataSet.Tables["Посещение"].DefaultView;
        }
       
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.05.2017, 18:20
Ответы с готовыми решениями:

Как связать таблицы БД С разных Форм
Построена структура через ACCESS Несколько окон, как сделать связку таблиц по ID в Delphi, чтоб было обращение с одной таблицы к другой...

Как связать 2 datagridview в 2-х разных формах визуальными средствами Visual Studio C# ?
Имеются 2 связанные таблицы. Как связать 2 datagridview в 2-х разных формах визуальными средствами Visual Studio? Чтобы при выборе строки...

Как связать данные грида из разных форм
Доброго времени суток! Есть вопрос, как или можно ли связать данные Strngrd из разных форм? не прибегая к function. Помогите, диплом на...

2
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
13.05.2017, 21:21
Вы хотите, чтобы га Ваши костыли подсказали изоленту или же хотите сделать правильно? В Вашем случае можно и так и этак. Если без костылей, то
1. Сделайте отдельный класс для иаботы с таблицами и БД.
2. Если работаете с биндингом, то логично реализовывать метод onPropertyChange ()
3. Не используйте магические переменные.
1
0 / 0 / 0
Регистрация: 10.12.2015
Сообщений: 2
13.05.2017, 22:58  [ТС]
hoolygan, а можно, пожалуйста, пример привести в виде кода? Буду вам очень благодарна!!! Просто пока ещё плохо разбираюсь(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.05.2017, 22:58
Помогаю со студенческими работами здесь

Как связать Visual Studio с хостингом проекта через VisualSVN?
Нужно чтобы VisualSVN отправлял данные не на локальный репозиторий, а на сетевой. Можете подсказать как это сделать?

Как создать оконное приложение в Visual Studio 2017 с редактором форм?
Здравствуйте. Мне нужно создать оконное приложение на Visual Sturio C++ 2017 Community, но что я выбрал &quot;Классическое приложение - на...

Как связать два cpp файла в одном проекте (visual studio 2010)
Есть два программы: одна создает файл.txt, вторая читает из него данные и выводит на экран. создает файл #include &lt;iostream&gt; ...

как установить две одникаовые visual studio но разных версий?
разбираю движок source, есть код который компилируется только под 2010 студию, у меня же 2015, переустанавливать долго, часа два идёт...

Связать 2 таблицы из разных БД
Добрый день, подскажите как связать 2 таблицы находящихся в разных БД (файлах)


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru