C#

2017-12-21 55 views
0

을 사용하여 업로드 된 Excel 테이블을 SQL 테이블로 업로드 업로드 된 Excel에서 데이터베이스 에 대해 유효성을 검사해야하며 Excel에서 잘못된 데이터가 사용자 확인을 위해 눈금에 표시되어야합니다. 사용자의 확인을 받으면 Excel에서 유효한 데이터 만 데이터베이스에서 업데이트해야합니다. 필자는 그리드에서 업로드, 유효성 검사 및 표시를 정확하게 수행 할 수 있습니다.C#

시나리오 :

표는 이름, 지정 및 회사 등의 사용자 데이터가 포함되어 있습니다.

업로드 된 Excel에 제공된 이름 필드는 데이터베이스에서 교차 유효성 검사를 받아야합니다. 이름 중 하나를 사용할 수없는 경우 데이터는 눈금의 사용자에게 표시되어야합니다.

'계속'버튼을 누르면 잘못된 데이터를 무시하고 테이블을 업데이트하기 위해 유효한 데이터 만 가져와야합니다.

업로드 된 Excel을 두 번 읽지 않으려 고합니다.

업로드 할 때 Excel에서 사용할 수있는 거대한 데이터가있을 수 있습니다. 따라서이 작업은 가능한 한 빨라야합니다. 더 나은 솔루션이 있습니까

+0

당신이 묻는 것은 명확하지 않지만 사용자가 값 비싼 작업을 두 번 클릭하는 것을 방지하는 방법을 묻고 있다고 생각합니다. –

답변

0

몇 번의 왕복 이동을 통해 데이터를 유지하는 방법을 결정하려는 것 같습니다. 먼저 사용자가 업로드합니다. 그런 다음 잠재적으로 다시 사용자에게 렌더링해야하며, 계속함으로써 효과적으로 다시 제출해야하며 두 번째 제출에서는 유효한 행이 테이블에 저장됩니다.

본인은 사용자가 스프레드 시트를 다시 제출하지 않기로 동의합니다. 그러나 모든 데이터는 사용자가 잘못된 행을 본 후에 처리 될 수 있도록 어딘가에 유지되어야합니다.

Excel에서 업로드 한 직후 SQL 테이블에 데이터를 저장하는 것이 좋습니다. 이제 테이블의 데이터에 대해 유효성 검사를 수행하고 행을 유효 또는 무효로 표시 할 수 있습니다. 특정 데이터가 다른 룩업 테이블에 존재하는지 확인하는 중이라면 저장 프로 시저에 의해 유효성 검사를 대량으로 수행 할 수 있습니다.

이제 행 세트가 생겼습니다. 모든 행을 특정 사용자 조작에 속하는 것으로 식별하는 공통 키가 있습니다. 이제는 사용자가 무시할 잘못된 행을 반환 할 수 있습니다. 사용자가 확인하면 유효한 행을 "실제"테이블로 마이 그 레이션하고 모두 삭제합니다. 한 x 후에도 해당 행을 만기시킬 수 있습니다. 특정 시간 이후에 사용자가 승인하지 않으면 다시 업로드해야합니다.

이 방법의 이점은이 프로세스를 복잡하고 복잡한 단계를 제어 할 수 있다는 점입니다. 한 단계는 초기 업로드를 수행합니다. 다른 하나는 유효하지 않은 행 집합을 반환합니다. 다른 하나는 유효한 행 집합을 승인합니다. 단계가 작을수록 유지 보수 및 단위 테스트가 쉬워집니다.

또 다른 이점은 Excel 업로드에서 프로세스를 분리 할 수 ​​있다는 것입니다. 아마도 언젠가는 XML로 업로드를 처리하려고 할 것입니다. 첫 번째 단계 만 변경해야합니다.데이터가 표에 들어가면 더 이상 중요하지 않게됩니다.

0

두 가지 값 비싼 작업을 수행하지 않도록 프로그램에서 사용자 입력을 차단하도록 하시겠습니까?

사용자가 버튼을 클릭하자마자 코드의 첫 번째 비트를 사용하여 버튼과 다른 모든 버튼을 비활성화하십시오. 또한로드 아이콘이나 상태 메시지를 추가하면됩니다. 그런 다음 작업이 끝나면 해당 버튼을 다시 활성화하십시오.