2011-03-14 6 views
0

친애하는 모든 내 응용 프로그램의 여러 형태로 많은 빗 상자가 있고 ecah는 데이터베이스의 항목으로 채워야합니다 그래서 콤보 상자 이름을 매개 변수로 전달하여 저장 프로 시저를 만들고 싶습니다. 그런 다음 어떤 형식에서든 호출하십시오.콤보 상자 이름을 프로 시저에 전달

어떤 형식으로 전달할 지 모르겠습니까? 도와주세요

답변

1

이 문제에 대한 접근 방식이 최적이 아닌 것처럼 들립니다.

"콤보 상자"의 개념은 대개 데이터베이스 구성 요소에 얽히고 자하는 것이 아닙니다.

한 응용 프로그램 계층에서 도메인의 "개념"을 클래스로 모델링하려는 의도로 응용 프로그램을 디자인하십시오. 이 데이터 중 일부가 자주 필요하며 거의 변경되지 않는 경우이 데이터 중 일부의 캐싱을 구현할 수 있습니다. 그 결과 UI를 디자인하고 도메인 모델에 의해 노출 된 필수 목록 및 컬렉션과 콤보 상자를 연결할 수 있습니다.

편집 : 콤보 상자의 고유 한 특성을 데이터베이스에 매개 변수로 사용하여 아이템을 얻으려면 컨트롤의 태그 속성을 사용하는 것이 좋습니다. 이 전략을 사용하면 이름 지정/고유성 충돌을 처리하지 않고 동일한 옵션 (예 : 여러 개의 예/아니오 또는 열림/닫힘 콤보와 같은)을 사용하여 동일한 양식에 여러 개의 콤보 상자를 가질 수 있습니다.

  • 예 : GetComboSourceData()인데, 이는 System.Windows.Forms.ControlCollection을 매개 변수로 취합니다.
  • 이 메서드 내부에서 컨트롤을 반복하여 Comboboxes를 찾습니다. 태그 속성이 설정된 경우이 태그를 매개 변수로 데이터베이스 쿼리에 보냅니다. 반환 된 데이터 집합을 데이터 소스로 개별 콤보에 할당합니다.
  • 양식을로드 할 때 GetComboSourceData(this.Controls)을 호출하여 콤보를 채워야합니다.
+0

나는 이것이 최선의 방법은 아니라는 것을 알고 있지만, 매우 엄격한 스케줄을 가지고 있으며, 무엇인가를 도피 할 필요가 있으므로 프로 시저에 componetet 이름을 전달하는 방법을 알려주십시오. 고맙습니다 – Amanda

관련 문제