547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
||||||
1 | ||||||
Связать два datagridview (один ко многим) с разными таблицами в разных dataset26.02.2020, 19:49. Показов 2830. Ответов 10
Привет!
Подскажите пожалуйста по немного нестандартной ситуации. У меня создан один класс, который полностью накладывает на datagridview все основные действия по выборке и зименению данных. В рамках данного экземпляра класса формируется dataset1 к примеру для одной таблицы table1 в рамках datagridview1 Я разместил на форме второй datagridview В рамках данного экземпляра класса формируется dataset2 к примеру для одной таблицы table2в рамках datagridview2 У каждого класса написал метод вывода dataset при необходимости:
А как их дальше связать в коде (напоминаю - это разные dataset с разными наборами данных/таблицами) чтобы на форме заработало отношение master - detail при выборке строки "главного" datagridview dataGridViewSales? Может сделать dataset типа static? чтобы в него подгружались наборы сразу из нескольких таблиц и хранились там? Но это отношение нужно мне только на одной форме, на остальных не нужно. Подскажите пожалуйста, как в разных dataset указать /связать по общему ключу данные? В обеих есть общее поле для связывания (к примеру sale_id)
0
|
26.02.2020, 19:49 | |
Ответы с готовыми решениями:
10
Определить тип связи между таблицами. Связь много-ко-многим или один-ко-многим? Организовать связь один-ко-многим между таблицами Entity Framework. Связь между таблицами один ко многим Как сделать,чтобы например код сотрудника связать связью один ко многим |
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
|
|
26.02.2020, 21:37 | 2 |
Сообщение было отмечено Даценд как решение
Решение
Сергей1980, есть стандартное решение для отображения связанных данных в 2-х гридах.
https://docs.microsoft.com/en-... agridviews
2
|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
|||||||||||
26.02.2020, 23:52 [ТС] | 3 | ||||||||||
Да,спасибо, я конечно видел этот пример,в частности:
В принципе я уже пересмотрел архитектуру класса, и сделаю таким образом, что вне зависимости от количества инициализированных классов dataset будет общий, чтобы можно его было наполнять множеством таблиц и связывать их связями внутри. В любом случае спасибо. Добавлено через 45 минут Все завелось, пришлось dataset выносить как статическую переменную на уровень поля универсального класса.
0
|
1517 / 908 / 328
Регистрация: 17.05.2015
Сообщений: 3,430
|
|
27.02.2020, 10:13 | 4 |
Сергей1980, зачем работать с dataset если можно напрямую с бд?
1
|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
|
27.02.2020, 11:08 [ТС] | 5 |
Имеете в виду через Ole ?
У меня не ms sql , а mysql )
0
|
1517 / 908 / 328
Регистрация: 17.05.2015
Сообщений: 3,430
|
|
27.02.2020, 11:30 | 6 |
Сергей1980, да хоть аксесс, работайте с бд, это быстрее и удобнее чем с датасетом
0
|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
|
27.02.2020, 11:44 [ТС] | 7 |
Я пробовал подключаться через классический mysql odbc driver/connector net for visual studio. Используя стандартные возможности адаптера, предоставляющие в конструкторе сразу визуально помещать к примеру на форму визуальные объекты типа mysqldataadapter, dataset, datatable. Поигрался с ними и решил все взаимодействие с бд оформить вообще в коде, работая исключительно со свойствами и методами библиотеки mySqlData.
А какие ещё варианты есть взаимодействия с mysql server в c# ? Слышал и читал про библиотеку linq. Под мускул она вроде тоже имеется. Какие вообще варианты подключения предпочтительны в разрезе двухзвенки c#- mysql? Добавлено через 4 минуты Рядовой, так я и так работаю с бд , через mysqldata напрямую . Где та грань выпрямления, про которую вы говорите ?))
0
|
1517 / 908 / 328
Регистрация: 17.05.2015
Сообщений: 3,430
|
|
27.02.2020, 12:05 | 8 |
Сергей1980, вот документация
https://dev.mysql.com/doc/conn... mmand.html вам нужны классы MySqlDataReader и MySqlCommand. Делаете запрос - получаете данные - выводите. Изменили данные - делаете запрос на обновление данных и получаете свежие. Но данные не должны храниться в датасетах. Они должны быть в базе. И браться из базы. это все программирование мышкой - для студентов. Нормальное приложение на этом не сделаешь.
0
|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
|
27.02.2020, 12:29 [ТС] | 9 |
Я не программирую мышкой ) и использую в проекте и mysqlCommand и MysqlDataReader , для автоматической обработки crud. И датасет у меня binded (да, такое можно). Чем вам такой датасет не угодил?)
Добавлено через 15 минут mysqlCommand и MysqlDataReader как раз и входит в ту библиотеку , с которой я работаю, и ссылку на которую вы мне прислали зачем то) По датасету так и не понял подгон с вашей стороны. ) Он ведь разный может быть. Отвязанный ,который тащит все данные на себя, и связанный ,который просто ссылается на источник . Второй и использую. Колитесь, что плохого в датасете, и меня просветите и всех остальных форумчан .
0
|
1517 / 908 / 328
Регистрация: 17.05.2015
Сообщений: 3,430
|
|
27.02.2020, 12:49 | 10 |
Сергей1980, да ничего плохого в нем нет, кроме того что он, собственно, не нужен.
Это просто кэш данных из бд, и работать с ним без особой необходимости нет смысла. Как и вас уговаривать.
0
|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
|
27.02.2020, 13:01 [ТС] | 11 |
Рядовой, я понимаю о чем вы говорите. Ну тут дело вкуса) Кэш ведь управляемый в C#. И это круто. Благодаря ему в общем то мы получаем бонус в виде виртуализации из коробки. Что у меня бы на Java потребовало бы написания отдельного класса с данными как в таблице, загона в коллекцию/лист, потом отрисовке данных коллекции в гриде, в C# решается стоковым кэшированием. Я просто не могу пройти мимо такого подарка от VS и MS )
0
|
27.02.2020, 13:01 | |
27.02.2020, 13:01 | |
Помогаю со студенческими работами здесь
11
Не могу связать два файла, используемых разными def Создать базу данных с таблицами «Врачи» и «Пациенты» Создать межтабличную связь типа «один-ко-многим» Создать базу данных с таблицами «Врачи» и «Пациенты» Создать межтабличную связь типа «один-ко-многим» Как сопоставить два файла по ID (один ко многим) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |