передача имени comboBox в процедуру - PullRequest
0 голосов
/ 14 марта 2011

дорогие все У меня много ящиков для гребня во многих формах моего заявления, и ecah должен быть заполнен элементами из базы данных Итак, я хочу сделать процедуру хранения с именем поля со списком, переданным как paremeter, а затем вызвать его из любой формы

Я не знаю, как передать это, как тип? пожалуйста помогите

1 Ответ

1 голос
/ 14 марта 2011

Похоже, ваш подход к этой проблеме не оптимален.

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

Создайте свое приложение с целью моделирования "концепций" вашего домена на одном уровне приложения в виде классов.Если некоторые из этих данных часто необходимы и редко меняются, вы можете захотеть реализовать кэширование некоторых из этих данных.Впоследствии вы можете создать свой пользовательский интерфейс и связать комбинированные списки с необходимыми списками и коллекциями, предоставляемыми вашей моделью предметной области.

Редактировать: Если вы действительно хотите использовать какой-то неотъемлемый аспект комбинированного списка в качестве параметра в базе данных (для получения элементов), тогда, я думаю, вы могли бы рассмотреть возможность использования свойства Tag элемента управления для этого.Эта стратегия позволяет вам иметь несколько комбинированных списков в одной форме с одинаковыми параметрами (например, несколько комбинаций Да / Нет или Открытые / Закрытые) без необходимости иметь дело с конфликтами именования / уникальности.

  • Создайте метод, например GetComboSourceData(), который принимает System.Windows.Forms.ControlCollection в качестве параметра.
  • Внутри этого метода итерируйте элементы управления, ища комбинированные списки.Если у них установлено свойство Tag, отправьте этот тег в качестве параметра в запрос к вашей базе данных.Назначьте возвращенный набор данных в качестве источника данных для отдельных комбинаций.
  • При загрузке форм обязательно вызовите GetComboSourceData(this.Controls) для заполнения ваших комбинаций.
...