2010-01-25 6 views
2

내 프로젝트에서 DataSets 유효성 검사 작업 중입니다. dataTable의 부분 클래스에서 DataTable_ColumnChanged 이벤트가 발생하고 해당 작업을 수행 할 때 유효성 검사를 수행하고 있지만 사용자 정의 오류 메시지를 제공하기 위해 UI가 아닌 dataSet 수준의 데이터 유형 불일치를 확인하고 싶습니다. [someID]가 number를 예상하면 누군가가 텍스트 상자에 문자열을 입력합니다.형식에 대한 데이터 집합 유효성 확인 (C# .NET)

문제는 DataSet이 DataTable_ColumnChanged 이벤트가 발생하기 전에 어딘가에서 이러한 유형의 오류를 처리하고 결코 열을 변경하지 않는다는 것입니다.

그래서 질문은 어디서 어떻게 가로 챕니다. 부분 dataTable 클래스, 속성 또는 뭔가 랩으로 처리 할 수 ​​있지만 VS 코드 묶음을 생성하고 내가 어디 있는지 모르겠다 :) 고마워요. 감사.

답변

0

/드롭 기능이 작업을 수행 할 수 있습니다. 이것은 부분적으로 당신이 이미 지적한 것처럼, 당신은 무슨 일이 일어나고 있는지 알 수 없습니다.

스튜디오에 의한이 코드gen은 더욱 복잡해지고 있습니다. 을 제안한다면이 자동 생성 된 데이터 세트를 제거하고 프로젝트 초기에 사용자가 입력 한 데이터 세트를 대체하여 대체하십시오. 보다 정형화 된 형식의 데이터 집합을 이처럼 변경할 수있는 위치에 있다면 현재와 같은 상황에 빠지지 않도록 할 수 있습니다.

또한 시간이 있다면 데이터 세트를 전혀 사용하지 않는 디자인을 고려해 볼 수도 있지만 그보다 훨씬 더 많은 작업이 필요합니다. 대부분의 사람들은 NHibernate와 같은 ORM 솔루션이나 우리가 DataSets를 사용하기 위해 사용한 것과 유사한 것들을 사용하고 있습니다. 분명히 DataSet을 사용해야하는 시간이나 외부 요소가있는 경우이 ORM 고려 사항을 잊어 버리십시오. 대신 자동 생성 된 데이터 집합을 제거하고 대신 입력 된 데이터 집합을 만드는 방법에 대해 생각해보십시오. 그것은 당신에게 훨씬 쉬울 것입니다.

+0

네, 맞습니다. 저는 VS 드래그 앤 드롭 기능을 사용합니다. 그렇게 쉽게 :). 지금 당장 나는 일을하는 과정에 있지만, 올바른 방법으로하고 싶습니다. 수동 타이핑 데이터 세트에 대한 옵션을 선택하겠습니다. 이런 종류의 대답이 필요했습니다. 감사합니다. :) – Wally

0

ColumnChanging 이벤트?이 정확하게 질문에 대한 답변하지 않습니다,하지만 당신은 VS는 끈적 거리는 무리를 만드는 것을 언급 할 때 그것은 나를 아마 당신은 드래그를 사용하고 있는지 생각하게 \

Dataset events

+0

전에 해봤지만 불을 피우지 못했습니다. : – Wally

+0

데이터 세트에서 데이터를 요청하면 데이터 세트에서 ColumnChanged 이벤트가 발생합니다. 내 직감은 UI에서 가로 채거나 새 행에서 가로채는 것입니다. 값을 변경하기 위해 사용하는 코드를 표시합니다. 여기에서 문제를 해결할 수 있습니다. – Spence

+0

글쎄, XAML을 통해 텍스트 상자에 바인딩 된 열입니다. UI의 dataType 논리가 좋지 않겠습니까? Text = "{바인딩 경로 = Naziv, UpdateSourceTrigger = PropertyChanged, ValidatesOnDataErrors = True} " – Wally

관련 문제