2012-02-27 3 views
0

asp.net/C# 응용 프로그램 및 Oracle로 백엔드 있습니다. 거래를 사용해야합니다.Oracle 트랜잭션 쿼리, Asp.net 타이머

내가 같은 열이있는 테이블 OrderDetails의이 : 모든 OrderNames는 라디오 버튼과 같은 프론트 엔드에 표시됩니다 "ORDERID" "ORDERNAME" "OrderStatus"

아래 reqirement입니다. 라디오 버튼을 선택하면 해당 주문의 상태가 '진행 중'으로 변경되고 페이지의 '주문 생성'버튼을 클릭하면 상태가 '예약 됨'으로 변경됩니다.

라디오 버튼이 선택 취소되었거나 창이 닫힌 경우 상태가 '사용 가능'으로 변경되어야합니다.

또한 라디오 버튼을 확인하면 프런트 엔드에서 타이머가 시작되어야합니다. 타이머 지속 시간은 다른 백엔드 테이블에서 가져와야합니다. 명령은 해당 타이머 기간 동안 만 "처리 중"으로 유지 될 수 있습니다.

이 기능을 어떻게 달성 할 수 있는지에 대한 모든 안내입니다. 사전에

감사합니다. 여기

+1

요구 사항이 좋아 보이지만 어디서 멈추는 지, 여기에있는 누군가가 당신을 도울 수 있도록 특정 병목 현상을 지정해야합니다. – V4Vendetta

+0

번역본도 작성한 적이 없습니다. 그래서 어디서부터 시작할 지에 대한 어떤 조언이라도 도움이된다면. 타이머와도 동기화하는 방법에 대해서. – RMN

답변

1

'기본 개요 :

순서가 확인 될 때마다,
  1. , 당신의 프로세스 상태로 순서를 설정 트리거 것 AJAX 요청을 발사 할 필요가있다.
  2. 주문이 진행 상태로 이동 한 시간을 나타내는 주문 테이블에서 마지막으로 업데이트 된 열을 유지 보수합니다.
  3. # 1의 AJAX 요청은 시간 표시를 사용자에게 제공 할 수 있도록 타이머 지속 시간 및 마지막 업데이트 시간을 프런트 엔드 js로 반환해야합니다. (왕복 시간의 절반을 사용하여 서버 날짜 - 시간을 프런트 엔드 날짜 - 시간으로 조정해야 함)
  4. 주문이 선택 취소 된 경우 AJAX 요청을 실행하여 주문 상태를 다시 사용 가능으로 변경할 수 있습니다.
  5. 주문 만들기 버튼을 누르면 AJAX 요청 (또는 기존 ASP.NET 포스트 백)을 트리거하여 예약 된 상태로 상태를 표시 할 수 있습니다.
  6. 데이터베이스 작업을 충분히 주기적으로 실행하여 진행중인 주문을 마지막 업데이트 후 경과 된 시간을 기준으로 다시 사용할 수있게하십시오. 동일한 정리 작업을 수행하기 위해 다른 종류의 예약 (예 : Windows 스케줄러)을 선택할 수 있습니다.
  7. # 6은 창 닫기 시나리오를 처리해야하지만 원본 창을 닫기 전에 항상 다른 창 (최소)에서 정리를 수행하도록 요청할 수 있습니다.

ASP.NET의 AJAX 및 Oracle 데이터베이스 업데이트는 꽤 라우팅 상태이며 웹에서 많은 정보/자습서를 찾을 수 있어야합니다. 거래와 동일 - 거래를보다 쉽게 ​​처리 할 수 ​​있도록 TransactionScope을 사용하는 것이 좋습니다.