2010-12-30 3 views
0

웹 응용 프로그램에서 작업하고 있습니다. 한 페이지에서 레코드를 데이터베이스에 삽입하고 GridView의 데이터를 다른 페이지에 표시하려고합니다. 어떻게해야합니까?asp.net의 GridView 컨트롤에 대해

나는 GridView에서 레코드를 표시하는 방법을 알고 있지만 두 개의 웹 페이지가 있는지 알고 싶습니다. 한 페이지에 은 레코드를 삽입 할 수있는 기능을 제공하고 U는 GridView에서 레코드를 표시하려고합니다. 두 번째 페이지.

+1

좀 더 자세히 설명해 주시겠습니까? 이 질문은 논리적으로 "어떻게하면 데이터베이스 레코드를 gridview에 표시 할 수 있습니까?" 거기에는 수많은 튜토리얼이 있습니다. – David

+0

나는 내 질문을 정교하게 만들어 주므로 지금 나를 도와주세요. 데이비드 –

답변

0

데이터를 데이터베이스에서 검색하지 않고도 삽입 할 수는 있지만 첫 번째 페이지에 데이터를 저장하고 두 번째 페이지의 데이터베이스에서 데이터를 검색하는 것이 좋습니다.

인라인 SQL 또는 저장 프로 시저를 작성하여이 작업을 수행 할 수 있습니다. 한 가지 간단한 방법은 결과 집합을 DataTable에 전달하고 GridView를 바인딩하는 것입니다.

더 많은 작업과 더 많은 코드와 더 많은 데이터베이스 트립이 필요합니다. 그러나, 실제로 데이터베이스에 들어간 것을 표시하기 위해 웹 페이지가 업데이트 된 인 INSERT를 수행 할 때 매우 유용하다고 생각합니다. 때로는 사용자가 입력 한 내용과 다르기 때문에 문제를 즉시 볼 수 있습니다.

방금 ​​삽입 한 데이터를 식별하는 방법은 하나의 질문이됩니다. 나는 그것을 할 수있는 몇 가지 방법을 생각할 수 있습니다. 하나는 로그인 한 사람이 오늘 입력 한 모든 레코드를 쿼리하는 것입니다 (데이터베이스 테이블의 CreatedBy 및 CreatedDate 열에 기록됨). 결과 집합을 CreatedDate의 내림차순으로 정렬하여 가장 최근 항목이 GridView 맨 위에 표시되도록합니다. 또 다른 방법은 데이터 항목에 배치 번호를 할당하고 해당 배치의 데이터 만 검색하는 것입니다.

실제로 데이터 항목을 계속 사용하려면 첫 번째 페이지의 Session에 넣은 다음 두 번째 페이지에 표시하기 위해 Session에서 검색 할 수 있습니다.

0

DOK가 말한 바에 따라 데이터베이스에 제출하기 전에 비즈니스 논리에서 사용자가 입력 한 데이터의 유효성을 검사하는 것이 훨씬 쉽습니다.

둘째, 사용자는 웹 페이지의 데이터에 대해 자주 마음을 바꿀 수 있습니다. 웹의 데이터가 부분적으로 완료된 상태이거나 오타 또는 오류가있을 수 있습니다. 다른 사람이이 데이터를보고 완료해야한다고 생각하면 데이터베이스에 중복 항목이 생겨 결국 조정이 필요할 수 있습니다.

솔직히 세션 개체를 사용하여 임시 사용자 데이터를 보관하는 것이 가장 좋습니다. GridView RowEditing 이벤트에 대한 MSDN 항목에는이 방법에 대한 훌륭한 소스 코드가 포함되어 있습니다. GridView를 사용하여 데이터베이스의 데이터를 처리해야 할 때마다이를 모방합니다.

임시 데이터 저장소의 문제를 처리하는 것 외에도 세션 개체를 데이터베이스 결과와 비교하여 새 행이 삽입되었는지 여부를 확인할 수 있습니다. 이는 Equals 메서드를 오버로드하는 작업 (Microsoft에서 권장하는 작업을 수행하는 경우 GetHashCode를 오버로드하는 작업)과 Equals를 사용하여 두 컬렉션을 반복 처리하고 두 개체의 속성을 비교하며 레코드를 기반으로 새로운 레코드를 결정하기 때문에 다소 비용이 많이 듭니다 Session 개체에는 존재하지 않지만 데이터베이스 개체에는 존재합니다.

이 방법은 데이터베이스에서 데이터를 삭제하지 않고 데이터베이스의 레코드 상태를 "삭제됨"으로 설정했다고 가정 할 때 가치가 있습니다. 부울 필드 또는 코드 시퀀스 인 경우 테이블의 행 상태를 설명하는 데 사용됩니다.

관련 문제