С Новым годом! Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
11 / 11 / 0
Регистрация: 16.09.2013
Сообщений: 75

SQL Server Связать столбцы двух таблиц

01.03.2016, 10:25. Показов 3090. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
По FAQ связал две таблицы все работает. Но мне нужно в одном datagrid вывести одну таблицу где столбец уже связан с другой таблицей. Я так понимаю можно связать столбцы НЕ через SQL-запрос. Как?
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
public partial class Form1 : Form
    {
        private SqlConnection Connection = new SqlConnection();
        static string ConnectionString = "Integrated Security = true; Data Source = ХХХ.ХХ.ХХ.ХХХ; Initial Catalog=dbMyDB";
        private DataSet DataSetDBUsers = new DataSet("DataSetUsers");
        private static SqlDataAdapter UsersDataAdapter = new SqlDataAdapter("SELECT * FROM Users", ConnectionString);
        private static SqlDataAdapter AccountDataAdapter = new SqlDataAdapter("SELECT * FROM Accounts", ConnectionString); // WHERE Users.ID_Account = Accounts.ID_Account
        private SqlCommandBuilder UsersCommandBuilder = new SqlCommandBuilder(UsersDataAdapter);
        private SqlCommandBuilder AccountCommandBuilder = new SqlCommandBuilder(AccountDataAdapter);
public Form1()
        {
            InitializeComponent();
            SqlConnection Connection = new SqlConnection(ConnectionString);
            try
            {
                Connection.Open();
                label1.Text = "Connection OK";
            }
            catch (Exception ex)
            {
                label1.Text = ex.Message;
            }
 
            UsersDataAdapter.Fill(DataSetDBUsers, "Users");
            AccountDataAdapter.Fill(DataSetDBUsers, "Account");
            DataColumn parentColumn = DataSetDBUsers.Tables["Account"].Columns["ID_Account"]; //первичный ключ главной таблицы
            DataColumn childColumn = DataSetDBUsers.Tables["Users"].Columns["ID_Account"];    //внешний ключ подчиненной таблицы
            DataSetDBUsers.Relations.Add("UsersAndAccount", parentColumn, childColumn);
 
            BindingSource AccountBindingSource = new BindingSource(DataSetDBUsers, "Account");
            BindingSource UsersBindingSource = new BindingSource(DataSetDBUsers, "Users");
 
            BindingSource UsersAccountBindingSource = new BindingSource(AccountBindingSource, "UsersAndAccount");
 
            dataGridView1.DataSource = AccountBindingSource;
            dataGridView2.DataSource = UsersAccountBindingSource;
 }
Мне надо вывести в dataGridView1 таблицу Users где Users.ID_Account будет соответствовать Account.User_account
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.03.2016, 10:25
Ответы с готовыми решениями:

Как связать данные из двух таблиц и поместить их в третью? Желательно в Access SQL запросом
Имеется 3 таблицы: --Список студентов колледжа (ИД, ФИО, Дата рождения, Группа, Номер зачётки), --Отметки (ИД, Номер зачётки,...

Связать данные SQL Server 2005 с Vista на Server 2003
Здравствуйте! Я- студент-практикант. Такая задача,которой меня никто никогда не учил,обрыла весь интернет но никак не могу понять. Есть...

Можно ли имея доступ к SQL Server и зная название базы узнать весь список таблиц и поля этих таблиц в VB.NET?
можно ли имея доступ к SQL Server и зная название базы узнать весь список таблиц и поля этих таблиц в VB.NET P.S. Покажите пойжалуста...

3
24 / 24 / 10
Регистрация: 02.09.2014
Сообщений: 137
01.03.2016, 10:46
У тебя два Adapter и два BindingSource по коду программы не связные между собой, которые ты передаешь в два разных контрола. Любое извлечение данных происходит по SQL запросу(На сколько мне известно)
Соответственно при извлечении данных тебе нужен запрос, который сопоставит данные из двух таблиц, где выбор данных по
SQL
1
SELECT имя_таблицы2.столбец FROM имя_таблицы1, имя_таблицы2  WHERE имя_таблицы1.столбец==имя_таблицы2.столбец
Смотрите АкаунтАдаптер
0
11 / 11 / 0
Регистрация: 16.09.2013
Сообщений: 75
01.03.2016, 10:51  [ТС]
короче я так понял, изначально надо писать запрос где я связываю столбцы двух таблиц.
А в dataSet я это сделать не могу? и вывести потом итоговую таблицу где все уже связано и отображается как надо.
Я понимаю что лечение зубов через жо, просто для общего развития так сказать. Пытаюсь разобраться с DataRelation
0
24 / 24 / 10
Регистрация: 02.09.2014
Сообщений: 137
01.03.2016, 11:00
Лучший ответ Сообщение было отмечено Shoorup_SCBist как решение

Решение

Shoorup_SCBist, Ты не связываешь, а задаешь условие выбора данных во второй адаптер.
Для общего развития могу посоветовать Брайан Нойес: "Привязка данных в Windows Form" и Дэвид Сеппа: "Microsoft ADO.NET"
У одного более углубленно и на практике показывается как стоит и не стоит делать, у второго больше теории.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.03.2016, 11:00
Помогаю со студенческими работами здесь

DataCombo, как связать данные с двух таблиц?
Скажите пожалуйста как связать данные. То есть в одном DataCombo1 я выбрал например МАРКИ, а во втором DataCombo2 остаются для выбора...

Связать модель данных с таблицей в SQL Server
Добрый день! я только разбираюсь, вопрос в следующем: У меня есть модель данных Order, есть БД в SQL Server'e (она была создана...

Как связать ASP c ms sql server 2000 ?
Здравствуйте Подскажи пожалуйста что я тут не правильно ввожу, не могу разобраться, заранее благодарю Мне нужно соединиться с...

Как SQL Server v2 2008 связать с php?
Вобщем такая ситуация - надо создать фалообменик на php языке (задание такое) а также необходимо хранить информацию в СУРБД. Например юзер...

Связать ACCESS 2010 с SQL Server 2008 R2
Здраствуйте ) помогите или подскажите как связать ACCESS 2010 с SQL Server 2008 R2(для ввода данных в аксес и что бы они отображались в...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
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