2016-10-07 7 views
-6

알고 싶습니다, 왜 NotImplementedException(); 비록 내가 그 방법을 불렀다는 것을 확실히 알았지 만 여전히 나타난다. NotImplementedException하지만 이미 C#에서 메서드를 호출하십시오

는 던져 내 dsNBC.xsd 디자이너에서 예외 :

internal int getLastIDbyMaxPeg() 
{ 
    throw new System.NotImplementedException(); 
} 

이 내가 제어라는 이름의 폴더에 PegawaiControl.cs에서 메소드를 호출하는 방법입니다

public int getNumID() 
{ 
    return Peg.getLastIDbyMaxPeg(); 
} 

public string generateIDPeg() 
{ 
    string id = "PEG"; 
    return id + Convert.ToString(getNumID() + 1); 
} 

와의

경계 레이아웃을 다음과 같이 지역 변수에 generateIDPeg()라고 부릅니다. string idPegw = PC.generateIDPeg();

음, getLastIDbyMaxPeg()는 쿼리의 메소드 이름입니다. 내가 만든 dsNBC.xsd의 taset. 따라서 해당 메소드의 실제 구현 코드는 데이터 세트의 쿼리입니다. 여기에 consufed있어 어떻게 throw 예외의 실제 구현으로 쿼리를 구현할 수 있습니까? You can see the StackTrace here

도와 주시겠습니까?

+6

메서드를 호출 할 때 메서드가 수행하는 유일한 작업은 예외를 throw하는 것이므로 예외가 발생합니다 ... 'throw new System.NotImplementedException();'줄을 제거하고 거기에 당신 자신의 코드. –

+0

'throw new System.NotImplementedException();'줄은 자리 표시 자 텍스트입니다. 그 방법에서 int를 반환해야합니다. – jetstream96

+1

질문에 예외 스택 추적을 추가 할 수 있습니까? – stuartd

답변

0

해당 코드를 제거하고 실제 구현으로 대체해야합니다.
메소드가 구현되지 않았습니다. NotImplementedException을 던지기보다는 실제로 을 수행하고을 수행합니다. 호출 만합니다.

메서드를 호출하면 자동으로 제거되지 않습니다. 구현을 제공해야합니다.

놓습니다 방법의 내부 논리와는 상황을 해결하기 위해 현재 행을 제거 : 당신은, 참으로, 문제의 원인 인 getLastIDbyMaxPeg() 메소드를 호출 한

internal int getLastIDbyMaxPeg() 
{ 
    //Do some things 
    //return some int value 
} 
+0

하지만 getLastIDbyMaxPeg()는 데이터베이스에서 마지막 최대 ID를 찾기 위해 DataSet에서 만드는 메소드의 이름이므로 코드가 쿼리 ... 그래서 "Peg"가 있습니다."는 Peg가 tableAdapter의 변수이기 때문에 getLastIDbyMaxPeg() 앞에 ... 코드 자체가 데이터 집합에 대한 쿼리 인 동안 내부 int getLastIDbyMaxPeg에 코드를 넣을 수 있습니까? @DangerZone – RedPlay

+0

완전히 다른 질문입니다. C#에서 쿼리를 수행하는 방법을 연구하고 쿼리를이 메서드에 배치해야합니다. –

0

.

이 예외는 정확히 말하면 다음과 같습니다. 호출하기 전에 getLastIDbyMaxPeg() 메소드를 구현하지 않았습니다. 지금은 모든 getLastIDbyMaxPeg가 NotImplementedException()입니다. (예외는 구현해야하지만 아직 수행되지 않은 메소드의 표준 "자리 표시 자"입니다.)

throw new NotImplementedException()을 실제 구현으로 바꾸면 문제가 해결됩니다.