2013-02-08 2 views
1

DataSet + TableAdapter 및 바인딩 된 DataGridView가 있습니다. 나는 (WinForms) 편집 할 세부 사항이있는 새로운 양식을 여는 편집 단추가 있습니다. 새 양식을 열기 전에 데이터 집합과 데이터베이스에서 한 행 (선택한 항목)을 새로 고치려면 어떻게해야합니까?데이터베이스에서 데이터 집합의 한 행을 새로 고치기 전에 편집 양식

예 : 두 명의 사용자 A와 B. 사용자 A가 변경된 레코드 ID (10)이고 사용자 B는 여전히 레코드 ID (10)에 이전 값을 가지고 있습니다. 사용자 B는 편집 버튼을 누르고 데이터베이스에서 새로운 데이터를 가져와야합니다 (사용자 A가 변경 한 데이터).

+0

코드를 게시하십시오. –

답변

0

TableAdapter에서 하나의 행만 가져 와서 기존 행의 기본 키로 호출해야하는 새 쿼리를 만듭니다.

+0

그래,하지만 이전 데이터 세트의 이전 레코드를 새로운 것으로 대체하는 방법. 그리고 어떻게 datagridview에서 하나의 레코드를 새로 고치십시오. – user2055682

+0

그건 불가능합니다, 당신은 그것을 할 필요가 없습니다. 편집 양식이로드되면 해당 단일 레코드의 최신 버전을 가져 와서 편집 상자의 필드를 채 웁니다. 그런 다음 저장되고 편집 양식이 닫히면 전체 데이터 세트를 새로 고침해야합니다. 이는 하나의 행이 업데이트되는 것에 대해 걱정한다면 어쨌든 모든 것을 업데이트해야하기 때문입니다. 물론 가능하지만 로컬 레코드를 수동으로 편집하고 행의 저장을 다시 트리거하지 않도록하고 동시성 문제를 복잡하게 만드는 많은 작업을해야합니다. IMO, 그만한 가치는 없습니다. – kettch

+0

나는 비슷한 방식으로 그렇게하지만 같은 경우에는 하나의 행만 새로 고침하고 싶습니다. 당신은 그럴 가치가 없을 것 같습니다. – user2055682

0

내가 그것의 자신의 방법에있는 gridview 비트 fill_grid 같은 말을 채우기로 묶으 것 (0>) Rows.Count (확인 후) 새로운 DataSet으로 결과를 연결하고 첫 번째 행을 잡아() . 그런 다음 편집 링크 클릭 이벤트에서 메소드를 호출하면됩니다. 그러면 변경된 사항이 업데이트됩니다. 그런 다음 다른 모든 단추 링크 이벤트에도이 메서드를 추가하십시오. 그런 다음 사용자가 링크를 클릭 할 때마다 그리드가 근본적으로 "새로 고침"됩니다.

관련 문제