2009-03-18 7 views
0

저는 몇 가지 필드, 날짜 및 문자열과 함께 Form (Compact Framework, 실제로)을 가지고 있습니다. 두 TextBox 컨트롤은 BindindSource의 속성에 바인딩됩니다.양식 데이터 바인딩 - 데이터 세트가 업데이트되지 않습니까?

BindindSource는 DataSource 속성으로 DataSet을 가지며 DataMember는 SQL CE 데이터베이스의 테이블입니다.

새 행을 추가하려면 bindingSource.AddNew()를 호출 한 다음 bindingSource.MoveLast()를 호출합니다. 양식은 DataSet에 정의 된대로 기본값을 표시하며 모든 필드를 편집 할 수 있습니다.

양식을 저장하려면 TableAdapter 메서드를 사용하여 bindingSource.EndEdit()을 호출하고 DataSet 행의 값을 데이터베이스에 삽입합니다. 날짜가 문자열을 데이터베이스에 저장합니다. 대신 텍스트 상자에 입력 한 값이 아니라 문자열의 기본값이 저장됩니다.

EndEdit()을 호출 한 후 DataSet 테이블 행에서 데이터를 검사하면 날짜 필드가 양식의 데이터로 업데이트되고 문자열은 업데이트되지 않습니다.

이상하게도 (AddNew를 호출하지 않고) 같은 양식으로 기존 행을 편집하면 문자열 필드가 업데이트되고 잘 유지됩니다. 그래서 이것은 BindingSource에서 AddNew()를 호출 한 후에 만 ​​발생합니다. 내가 뭘 놓치고 있니? 어디서부터보아야합니까?

코드는 불행히도 여기에 게시하기에는 너무 많습니다.

답변

0

나는 TextBox의 Tag 및 Text 속성에 대해 BindingSource에서 실수로 동일한 열을 선택했음을 발견했습니다. 무슨 일이 일어 났는지는 텍스트가 먼저 쓰여졌고, 태그가 두 번째로 쓰여졌 고, 태그가 업데이트되지 않았기 때문에 수정 된 값을 덮어 썼다고 생각합니다.

관련 문제