2017-09-05 4 views
0

SQL Server 백엔드가있는 winforms 응용 프로그램이 있습니다. 정적 데이터, 룩업 테이블을 가지고있는 테이블이 있는데, 필요할 때 응용 프로그램을 시작할 때 응용 프로그램에서 사용할 데이터 세트를 채우고 싶습니다.VB.net 응용 프로그램 시작시 데이터 집합 입력

일반적 형태 I는 다음과 같이 사용합니다 : Me.TEMSWBSETableAdapter.Fill (Me.EMS_DS.TEMSWBSE)

을하지만 모든 형태의 데이터를 요구하는 것을해야 할 것입니다. 문제는 데이터를로드하는 데 시간이 걸리므로 필요한 경우 모든 백그라운드에서 사용할 수있는 백그라운드 작업자로 시작할 때 데이터를로드하고 싶습니다. 기본적으로 데이터 세트 전체에 사용하기 위해 해당 데이터로 채 웁니다.

잘 모르겠습니다. 누군가가 올바른 방향으로 나를 가리킬 수 있습니까? 감사합니다

+0

저는 이것이 DataTable의로드가 얼마나 오래 지속될 것인가에 달려 있다고 생각합니다. 어쩌면 spashscreen이 좋을 것입니다 (데이터를 글로벌 DataTable로로드). – muffi

+0

지금은 스플래시 화면을 사용합니다. 데이터로드에 2-3 분이 소요됩니다. 전세계 데이터 테이블을 아프다. – dk96m

+1

DataTable을 모듈에 정의하면 전역 적으로 사용할 수 있어야합니다. 2 ~ 3 분이 길면 쿼리를 최적화 할 수 있습니다. 나는 mssql에 대해서는 확고하지 않지만 mysql은 다른 쿼리 (몇 가지 쿼리가 몇 분에서 몇 초로 이동)를 사용하면 쿼리가 훨씬 빠르게 실행됩니다. – muffi

답변

0

먼저 데이터베이스 TableAdapter를 생성하지 않고 데이터를 검색 할 수있는 DataReder 객체를 구현해야합니다. 이것은 forward only 및 ADO.net 메커니즘의 읽기 전용 모드로 데이터를로드합니다. 그러면 ExecuteNonQuery() 메소드를 구현하여 변경 사항을 데이터베이스에 직접 추가 할 수 있습니다.

관련 문제