2011-09-15 6 views
0

안녕하세요.이 오류 메시지 "현재 컨텍스트에 이름 patientid가 없습니다."와 "현재 컨텍스트에 formpatientid 이름이 없습니다"라는 오류 메시지가 표시됩니다. 왜 이런 일이 일어 났을까요?이름 patientid가 현재 컨텍스트에 존재하지 않습니다.

public void patientUpdate() 
    { 
     hospitalSQLEntities db = new hospitalSQLEntities(); 
     string formpatiendid = Request.Params["patientid"]; 
     patient mypatient = null; 
     try 
     { 
      mypatient = db.patients.Single(u => **patientid.Equals(formpatientid))**; 
     } 
+0

철자가 잘못되었습니다. – Sarah

+0

철자를 수정하여 문제가 해결 되었습니까? – MattDavey

+0

모두 해결되었습니다. Enigmativity는 u.patientid.Equals를 추가하여 도움을 받았습니다. 고마워요! – Sarah

답변

0

문제가 해결 되었습니까?

public void patientUpdate() 
    { 
     hospitalSQLEntities db = new hospitalSQLEntities(); 
     string formpatientid = Request.Params["patientid"]; 
     patient mypatient = null; 
     try 
     { 
      mypatient = db.patients.Single(u => 
       u.patientid.Equals(formpatientid)); 
     } 

나는 또한 try 블록을 사용하지 않습니다. 모든 것을 잡아 두는 것은 나쁜 습관입니다.

+0

이 경우에는 지정된 ID를 가진 환자가 없으면 Single 메서드가 InvalidOperationException을 throw하므로 Try 블록에 래핑하는 것이 좋습니다. 그러나이 경우 프로그램 흐름을 제어하기 위해 예외를 사용하는 것이므로 테스터 패턴을 채택하는 것이 좋습니다. – MattDavey

+0

@MattDavey - 없을 수도있는 경우 'Single' 대신'SingleOrDefault'를 사용하십시오. 결과. – Enigmativity

+0

그렇다면 당신은 NullReferenceException 대신에 InvalidOperationException을 교환 할 가능성이 높습니다 ... tester-doer가 db.patients.Any (xxx)이면 db.patients.First (xxx) 일 때 더 나은 옵션이 될 것입니다 .. – MattDavey

관련 문제