2011-08-15 1 views
1

이것은 매우 간단한 질문입니다.양식에서 변수 TableAdapter 선언

내 응용 프로그램에 일반 검색 양식을 작성 중입니다. 이렇게하면 사용자가 응용 프로그램 전체에서 다양한 레코드를 검색 할 수 있습니다.

내가 알아낼 수없는 한 가지는 런타임에 TableAdapter 선언을 변경하는 방법입니다. 앱의 각 부분은 변수를 검색 양식에 전달하여로드 할 테이블을 지정합니다.

FRIEND WITHEVENTS tbaSearchData AS database.databaseTableAdapters.TableOneTableAdapter 

이 TableOne에 좋은 곳입니다 : 폼 클래스에서

나는 다음 있습니다. 그러나 나는 검색 할 수있는 약 100 개의 테이블을 가지고 있습니다.

데이터를로드하려면 DataGridView를 사용하고 개인 메서드를 통해 데이터를 채 웁니다.

도움을 주시면 감사하겠습니다.

답변

1

Tableadapter는 디자인 타임 설정을위한 것이므로 런타임에 쉽게 변경되지 않습니다. 이러한 요청에 대해 SqlDataAdapter와 같은 DataAdapter를 사용하려고합니다. 이러한 객체는 오버 헤드가 낮으며 테이블 어댑터만큼 유형이 다르므로 런타임에 생성하면 괜찮습니다.

+0

에 전달되는 데이터 어댑터와 table TABLENAME되지만, SQL 어댑터는 내가 필요 정확히하고있다. 당신은 또한 오버 헤드가 낮다고 언급했습니다. 일반적으로 SQLAdapter를 사용하는 것이 SQL 데이터베이스에 데이터 소스가 추가되었을 때 TableAdapters를 사용하는 것이 더 나은 대안입니까? –

+0

나는 그것이 당신이하는 일에 달려 있다고 생각합니다. 대부분의 데이터 구조를 미리 알게되면 tableadapter와이를 생성하고 코드를 작성하는 형식화 된 데이터 집합을 사용할 수 있습니다. 그러나 런타임 유연성을 위해 나는 테이블 어댑터와 형식화 된 데이터 세트를 사용하지 않습니다. 나는 제 물건을 즉석에서 만듭니다. 때때로 sqladapter를 원하는대로 정확하게 동작시킬 수 있기 때문에 객체를 참조하는 것이 더 어렵지만 동일한 상충 관계가있을 수 있습니다. – TWood

0

내가 이것을 이해하는지 보자. 나는 앱의 다양한 관점에서 두 가지 솔루션

  1. 와 왔어요, 당신은 전문 데이터 어댑터 자체 대신 TABLENAME을 전달하고 검색 형태로 일반적인 데이터 어댑터 변수에 할당 할 수 있습니다.

  2. 검색 양식에 일반 DataAdapter를 만들고 데이터를로드하는 데 사용되는 SQL 명령을 변경할 수 있습니다. 다음 코드에서 da 그것은 조금 걸렸다 검색 양식

da.SelectCommand.CommandText = "Select * from " & table