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

Как создать связь между двумя таблицами?

23.05.2017, 20:31. Показов 6336. Ответов 44

Студворк — интернет-сервис помощи студентам
Ребят кто может подкинуть код который работает с двумя базами Access для проекта WindowsForm. Например есть 2 таблицы (1 и 2) пунктами они одинаковые имя и количество и во 2ой таблице имя и количество. Надо что бы при вводе данных во 2ую таблицу, данные "количество" вычитались из данных первой. Например в 1ой таблице имя: арбуз количество: 10, в 2ую вводим имя: арубз , количество: 3 ..... после чего в 1ой таблице количество становиться: 7.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.05.2017, 20:31
Ответы с готовыми решениями:

Можно ли установить связь между двумя таблицами двух БД на одном сервере?
Есть два БД, можно ли установить связь между двумя таблицами этих бд?

Как разорвать связь между двумя ComboBox?
Здравствуйте. Начинаю разбираться с программированием. Возникла проблема. Есть база данных в C#. Вставлена на форму с помощью DataGridView....

Отобразить связь между таблицами
Такой вопрос. Есть две таблицы БД созданные в mssql и связанные между собой. На форме соответственно для этих таблиц два datagridview. А...

44
1 / 1 / 3
Регистрация: 04.08.2015
Сообщений: 187
05.06.2017, 16:10  [ТС]
Студворк — интернет-сервис помощи студентам
Вот так вот....
Миниатюры
Как создать связь между двумя таблицами?  
0
1 / 1 / 3
Регистрация: 04.08.2015
Сообщений: 187
05.06.2017, 16:46  [ТС]
Цитата Сообщение от Aferuga Посмотреть сообщение
Сразу вопрос на кой черт две базы? Если таблицы взаимосвязаны лучше использовать их в одной базе, если соотношение между таблицами один-к-одному то проще просто к таблице прикрутить ещё одно поле.
Уникальное поле в вашем случае с названием "код".
Запрос можно прописать в дизайнере 1DataSet правой на tablica1TableAdapter-> добавить запрос-> выбираем Update-> и в конце кнопка построитель запросов
SQLВыделить код
1
2
3
UPDATE * * * tablica1
SET * * * * * *Количество = Количество + ?
WHERE * * * *(Код = ?)
появится новый запрос (по умолчанию UpdateQuery) заходим в его параметры(Parametrs) и меням DBType на INT32
Далее вызываем уже на самой форме в каком-нибудь методе:
C#Выделить код
1
2
3
int val = int.Parse(dataGridView1.Rows[dataGridView1.CurrentCellAddress.Y].Cells[0].Value.ToString());
* * * * * * this.tablica1TableAdapter.UpdateQuery(-1,val);
З. Ы. не говорю что это лучший вариант, но как пример сойдет.
Все сделал как написано... В итоге что бы я не писал в "количество" во второй таблице в первой таблице уменьшается на 1 ))) Криво работает...
0
1 / 1 / 3
Регистрация: 04.08.2015
Сообщений: 187
05.06.2017, 17:01  [ТС]
Цитата Сообщение от Итропинкаилесок Посмотреть сообщение
Сообщение от Aferuga
Сразу вопрос на кой черт две базы? Если таблицы взаимосвязаны лучше использовать их в одной базе, если соотношение между таблицами один-к-одному то проще просто к таблице прикрутить ещё одно поле.
Уникальное поле в вашем случае с названием "код".
Запрос можно прописать в дизайнере 1DataSet правой на tablica1TableAdapter-> добавить запрос-> выбираем Update-> и в конце кнопка построитель запросов
SQLВыделить код
1
2
3
UPDATE * * * tablica1
SET * * * * * *Количество = Количество + ?
WHERE * * * *(Код = ?)
появится новый запрос (по умолчанию UpdateQuery) заходим в его параметры(Parametrs) и меням DBType на INT32
Далее вызываем уже на самой форме в каком-нибудь методе:
C#Выделить код
1
2
3
int val = int.Parse(dataGridView1.Rows[dataGridView1.CurrentCellAddress.Y].Cells[0].Value.ToString());
* * * * * * this.tablica1TableAdapter.UpdateQuery(-1,val);
З. Ы. не говорю что это лучший вариант, но как пример сойдет.
Все сделал как написано... В итоге что бы я не писал в "количество" во второй таблице в первой таблице уменьшается на 1 ))) Криво работает...
Еще раз все сделал по инструкции.... В итоге не работает.... Если во tablica2 менять значение то в tablica1 черти что твориться.... Вот посмотрите пжлста
Вложения
Тип файла: zip TEST.zip (404.7 Кб, 2 просмотров)
0
1 / 1 / 3
Регистрация: 04.08.2015
Сообщений: 187
05.06.2017, 18:12  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Итропинкаилесок, нормально сформулируй вопрос и на него ответят.
Вы можете посмотреть приложение и указать где ошибка ?
0
Эксперт .NET
 Аватар для Usaga
14768 / 9541 / 1365
Регистрация: 21.01.2016
Сообщений: 35,980
05.06.2017, 18:15
Итропинкаилесок, что именно там неправильно работает?
0
1 / 1 / 3
Регистрация: 04.08.2015
Сообщений: 187
05.06.2017, 18:29  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Итропинкаилесок, что именно там неправильно работает?
Мне написали инструкцию... я все сделал.... но в итоге вместо того что бы при изменении tablca2 менялась tablica1 ничего не происходит... если менять "количество" в tablica2 то в tablica1 значение меняется но не правильно! А когда я просто пытаюсь изменить значение в tablica1 то при закрытии выбивает ошибку. Посмотрите пжлста у себя на компьютере так будет гораздо быстрее... это не займет много времени.. приложении простейшее думаю для вас умелых.
0
Эксперт .NET
 Аватар для Usaga
14768 / 9541 / 1365
Регистрация: 21.01.2016
Сообщений: 35,980
05.06.2017, 18:47
Итропинкаилесок, я не знаю, что вы пытались делать и в каком были состоянии, когда это делали, но у вас adapter1 пытается сохранить данные в таблицу2, которая физически находится в другой базе данных.
0
1 / 1 / 3
Регистрация: 04.08.2015
Сообщений: 187
05.06.2017, 19:22  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Итропинкаилесок, я не знаю, что вы пытались делать и в каком были состоянии, когда это делали, но у вас adapter1 пытается сохранить данные в таблицу2, которая физически находится в другой базе данных.
А это не возможно ? Мне это решение скинули ранее...
0
Эксперт .NET
 Аватар для Usaga
14768 / 9541 / 1365
Регистрация: 21.01.2016
Сообщений: 35,980
05.06.2017, 19:30
Итропинкаилесок, таким образом это не сделать. Нужно данные вытащить в память и уже другим запросом передать в нужную таблицу в нужной БД.

Вы лучше словами объясните что и зачем хотите сделать. Представленный вами проект выглядит как полный бред: две идентичные таблицы в разных базах...
0
1 / 1 / 3
Регистрация: 04.08.2015
Сообщений: 187
05.06.2017, 19:53  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Итропинкаилесок, таким образом это не сделать. Нужно данные вытащить в память и уже другим запросом передать в нужную таблицу в нужной БД.
Вы лучше словами объясните что и зачем хотите сделать. Представленный вами проект выглядит как полный бред: две идентичные таблицы в разных базах...
Все что я хочу это что бы при изменении значения "количество" во второй таблице менялось "количество" в первой таблице.... Можно и в одном БД сделать обе таблицы... я не против
0
Эксперт .NET
 Аватар для Usaga
14768 / 9541 / 1365
Регистрация: 21.01.2016
Сообщений: 35,980
06.06.2017, 03:33
Итропинкаилесок, хорошо. А это, в свою очередь, для чего понадобилось? Это ведь тоже не самое разумное требование. Какой в этом смысл?
0
 Аватар для Aferuga
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
06.06.2017, 03:40
в дизайнере откройте 1DataSet(в окне "Обзреватель решений" дважды нажмите на 1dataset) откроется дизайнер 1dataset там и меняйте.
0
Эксперт .NET
 Аватар для Usaga
14768 / 9541 / 1365
Регистрация: 21.01.2016
Сообщений: 35,980
06.06.2017, 03:44
Aferuga, вы о чём?
0
 Аватар для Aferuga
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
06.06.2017, 03:48
Usaga, он дизайнер датасета открыть не может)
0
Эксперт .NET
 Аватар для Usaga
14768 / 9541 / 1365
Регистрация: 21.01.2016
Сообщений: 35,980
06.06.2017, 04:10
Aferuga, мне кажется, что тут даже не в дизайнере дело. Из постановки задачи, условие которой ещё и плавает как калоша в луже, я могу предположить, что ТС-у нужно всего лишь связать данными две формы. А две таблицы в двух базах данных выплыли как следствие полного незнания языка.

Я, конечно, могу ошибать, но лично мне не приходит в голову хоть сколько-нибудь полезный кейс использования двух идентичных таблиц в одной или пофиг скольки БД, ещё и синхронизирующих свои данные.

Добавлено через 3 минуты
Максимум, что похожего можно придуть - заиметь вьюху (view) в БД, которая будет неким вариантом (представлением) другой таблицы. Но такое имеет смысл, когда нужно некоторое отличие. А тут польностью идентичные по структуре таблицы, да ещё, получается, с одним содержимым. Т.е. речь вообще об одной таблице. Наркомания какая-то, короче. Лучше подождать разъяснений ТС-а.
0
1 / 1 / 3
Регистрация: 04.08.2015
Сообщений: 187
06.06.2017, 06:49  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Максимум, что похожего можно придуть - заиметь вьюху (view) в БД, которая будет неким вариантом (представлением) другой таблицы. Но такое имеет смысл, когда нужно некоторое отличие. А тут польностью идентичные по структуре таблицы, да ещё, получается, с одним содержимым. Т.е. речь вообще об одной таблице. Наркомания какая-то, короче. Лучше подождать разъяснений ТС-а.
Видать не подъемная дело получается.... Вот вам смысл этой наркомании... Приложение будет для наркомана... Он ведет учет наркотиков (название и количество) Он сумасшедший и любит закупаться наркотой на месяцы в перед.. В первой таблице изначальное количество наркоты, во второй таблице уже употребленное количество наркоты. И наркоман не может сосчитать количество оставшейся ДОЗЫ... поэтому из первой таблицы должна вычитаться вторая автоматом.. (у нарика нету сил, нарик устал, но он хочет знать "Сколько еще у мну осталося")
0
Эксперт .NET
 Аватар для Usaga
14768 / 9541 / 1365
Регистрация: 21.01.2016
Сообщений: 35,980
06.06.2017, 07:45
Итропинкаилесок, Здоровое чувство юмора - хорош.

Если дело обстоит именно так, то всё это можно сделать строго в одной таблице. Вам понадобится три поля: начальное количество, употреблённое и оставшееся количество. Последнее можно сделать вычисляемым (Computed), которое будет считаться самой СУБД в момент изменения любого из первых двух полей.

Подобная вещь реализуется и в рамках DataTable.
1
1 / 1 / 3
Регистрация: 04.08.2015
Сообщений: 187
12.06.2017, 17:14  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Итропинкаилесок, Здоровое чувство юмора - хорош.
Если дело обстоит именно так, то всё это можно сделать строго в одной таблице. Вам понадобится три поля: начальное количество, употреблённое и оставшееся количество. Последнее можно сделать вычисляемым (Computed), которое будет считаться самой СУБД в момент изменения любого из первых двух полей.
Подобная вещь реализуется и в рамках DataTable.
Снова побеспокою.. Я ранее уже скидывал чудо приложение. Сначала открывается начальная форма с которых можно запустить остальные две формы. Можно сделать так что бы не закрывая одну форму открывать следующую ?? А то так приходиться закрывать предыдущую для открытия следующей.
Заранее спасибо.

Добавлено через 15 секунд
Цитата Сообщение от Usaga Посмотреть сообщение
Итропинкаилесок, Здоровое чувство юмора - хорош.
Если дело обстоит именно так, то всё это можно сделать строго в одной таблице. Вам понадобится три поля: начальное количество, употреблённое и оставшееся количество. Последнее можно сделать вычисляемым (Computed), которое будет считаться самой СУБД в момент изменения любого из первых двух полей.
Подобная вещь реализуется и в рамках DataTable.
Снова побеспокою.. Я ранее уже скидывал чудо приложение. Сначала открывается начальная форма с которых можно запустить остальные две формы. Можно сделать так что бы не закрывая одну форму открывать следующую ?? А то так приходиться закрывать предыдущую для открытия следующей.
Заранее спасибо.

Добавлено через 54 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
Подобная вещь реализуется и в рамках DataTable.
Вышло все не так... Сделал так: Теперь одна база в ней 2е таблицы! Одна в первой форме... другая во второй форме. Как реализовать следующее вычисление ? В первой таблице есть строка (код: 6)" в этой же строке указано "количество"... во второй таблице есть столбец с именем "Роба" .... Я хочу что бы из первой таблицы строки код:6, из "Количество" вычиталось сумма столбца "Роба" второй таблицы. (^_*)
0
Эксперт .NET
 Аватар для Usaga
14768 / 9541 / 1365
Регистрация: 21.01.2016
Сообщений: 35,980
12.06.2017, 17:32
Итропинкаилесок, ничё не понял. Что в этих таблицах? Зачем их две? Количество вычесть из "Роба"?
0
1 / 1 / 3
Регистрация: 04.08.2015
Сообщений: 187
12.06.2017, 17:39  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Итропинкаилесок, ничё не понял. Что в этих таблицах? Зачем их две? Количество вычесть из "Роба"?
Вот посмотри пжлста.
Вложения
Тип файла: zip тест.zip (7.88 Мб, 1 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.06.2017, 17:39

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

Связь между таблицами на разных формах
Подскажите пожалуйста, как связать таблицы на разных формах. Делал на делфи "костыли", все отлично работало. А в C# без понятия как...

Отношение между двумя таблицами
Привет всем. Есть две таблицы - Card и Pooshren. У Card есть первичный ключ(столбец itemperson). У pooshren есть столбец itemparent - это...

Как создать сваязи между таблицами?
У меня 6 таблиц как можно создать между ними связ?

Организовать связь один-ко-многим между таблицами
У меня есть три таблицы. Как правильно организовать связь один ко многим между ними? Правильно ли будет сделать это так как в вложении?


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение 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, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru