Привязка данных к связанному логическому столбцу, связь «многие ко многим»

Это приложение WinForms.

Между строками в таблицах TABLEA и TABLEB существует отношение «многие ко многим». В TABLELINK есть запись для каждой строки в TABLEA, связанной со строкой в ​​TABLEB. Подумайте о «пользователях» и «ролях» или о чем-то подобном, где каждая запись TABLELINK указывает, что «пользователь X имеет роль Y».

Я просматриваю записи TABLEA, используя объекты привязки данных. Без проблем. Это не сетка, а просто форма с отдельными элементами управления TextBox.

Я хочу отобразить группу флажков, каждый из которых соответствует строке в TABLEB. Я хочу привязать данные TABLELINK к свойству «checked» каждого флажка, поэтому поле Y проверяется, когда мы смотрим на запись X, если и только если есть запись TABLELINK, соответствующая этим X и Y.

У меня чертовски много времени на создание этого отношения и привязку его к флажкам, которые должны быть созданы во время выполнения, потому что дизайнер не знает, сколько их будет. Концептуально в SQL это select count(*) from tableb left join tablelink on tableb.y = tablelink.y where tablelink.x = ? group by tableb.y, но я не знаю, как связать это с отдельными флажками.

Мой вопрос состоит из двух частей: а) правильно ли я спроектировал это для начала? б) Если да, то как мне связать результаты этого запроса (или аналогичного) с отдельными флажками?


person catfood    schedule 05.01.2010    source источник


Ответы (1)


Не уверен насчет а) - я всегда задавался вопросом, правильно ли я это делаю.

Что я сделал, так это взял набор данных и отобразил сетку имен (на основе таблицы 1 в наборе данных), затем отобразил список флажков на основе запроса набора данных (таблица 2 в наборе данных), и если он проверен не на основе по данным во второй части

Не уверен, что это тот ответ, который вы хотели, но он работает!

person braindice    schedule 05.01.2010
comment
Спасибо за Ваш ответ. Приложение не вызывает сетку, и это WinForms, поэтому у меня нет CheckBoxList, но мне интересно, могу ли я в любом случае настроить адаптер запросов для этих флажков. Я думаю, что большая проблема со всей концепцией привязки данных заключается в том, что Microsoft стремится документировать ее в общих чертах. Я не вижу много того, что говорит: «Если ты сделаешь это, ты получишь то». Очень расплывчато. - person catfood; 10.01.2010