2012-06-05 4 views
0

나는 ASP.net (C#) 응용 프로그램을 가지고 있습니다. 신청서에 기입하고 제출할 양식 필드의 여러 페이지가 있습니다. 마지막 페이지 하단에는 제출 버튼이있어 모든 것을 데이터베이스에 씁니다. 이 필드를 양식에서 DB로 작성하는 코드는 약 30 개의 서로 다른 저장 프로 시저가 호출되기 때문에 매우 복잡합니다. 사용자가 "복제"라는 새로운 버튼을 클릭 할 때 복제본을 만들려고합니다. 복제본은 DB에 저장해야합니다. "제출"버튼에서 DB에 쓰기 코드를 복사 해 넣으려고하지만 여러 가지 문제가 발생합니다. 새로운 메소드에서 제출 버튼의 코드를 붙이고 "복제"버튼에서 해당 메소드를 호출하는 것과 같은 많은 접근법을 시도했지만이 방법은 효과가 없습니다. 따라서 DB에 저장된 제출 된 복사본을 복제하는 쉬운 방법이 있는지 혼란 스럽습니다. 일반적으로 몇 가지 SQL 문은 작동하지만이 경우 약 35 개의 저장 프로 시저, 70 개의 SQL 테이블 및 425 개의 열이 문제가됩니다."양식 필드를 데이터베이스에 쓰는"프로세스를 쉽게 복제하는 방법은 무엇입니까?

그래서 기본적으로 문제의 요약은 다음과 같습니다

나는에 제출 양식을 가지고이 분야가 무엇인지에 따라 DB의 다양한 위치에 채워진 필드를 작성합니다.

중복 복사본을 만드는 양식의 DB 저장된 필드를 복제하는 "복제"버튼을 만들고 싶습니다.

문제점 : 내가 말한 것처럼 약 215 개의 양식 필드와 70 개의 SQL 테이블이 있으며 각 양식 필드는 테이블의 특정 열로 이동합니다.

+0

복사하여 데이터베이스에 값을 두 번 삽입한다는 의미입니까? 아니면 사본을 다른 곳에 저장하고 있습니까? – Thousand

+0

양식 1은 열려 있습니다 (양식 1은 DB에 저장되고 사용자는 양식 1을 열려고하기 때문에 애플리케이션은 양식 1의 채워진 필드를 DB에서로드 함) 사용자가 복제를 클릭하면 저장된 양식의 필드가 DB AGAIN 이제는 모든 양식 필드 (모든 항목에 고유 한 ID를 부여했기 때문에 중복 입력에도 불구하고 사람이 원본과 복제본을 구별 할 수 있습니다.) – Bulvak

+0

"제출"버튼의 코드 ** ** ** ** ** ** 레코드를 삽입하는 코드입니까? 대답을 통해 ** 업데이트 ** –

답변

0

데이터베이스에 직접 복사를 수행하는 저장 프로 시저를 하나 더 작성하면됩니다. 그런 다음 "복제"버튼을 사용하여 사본을 생성하고 일부 핸들 (사본에 대해 생성 된 일부 기본 ID 값)을 반환하는 새 저장 프로 시저를 호출하고 핸들을 사용하여 복사 된 버전을 응용 프로그램에로드 할 수 있습니다. 트랜잭션 내에서 복사를 실행하여 커밋 할 전체 사본을 얻거나 오류가 발생할 경우 롤백 할 수 있도록하십시오.

관련 문제