2011-10-10 6 views
0

안녕하세요 저는 C#을 처음 접했고 너무 어려워서는 안될 것이라고 확신합니다. 그러나 그 문제를 해결할 수는 없습니다.C# 유효성 검사 오류

나는 윈도우 폼에서 모든 변수를 검색하고이를 데이터베이스에 삽입하는 다른 메소드에 제출하는 메소드가 있습니다. 변수가 선언 될 때 잘 작동하지만 null 값을 확인하기 위해 유효성 검사를 약간 추가 할 때 "이름 'gridRef1V'가 현재 컨텍스트에 존재하지 않습니다."오류가 발생합니다.

나는 순간이 검증은,

if (cbGridRef1.SelectedValue != null) 
     { 
      string gridRef1V = cbGridRef1.SelectedValue.ToString(); 
     } 
     else 
     { 
      MessageBox.Show("The grid ref1 field must contain a value"); 
      cbGridRef1.Focus(); 
     } 

오류 메시지를 recieveing되는 코드의 라인, 사전에 어떤 도움

SQLMethods.inspectionInsert(scrapTypeV, scrapShiftV, scrapDateV, prodAreaV, castDateV, dieNoV, dieCodeV, dieDescV, machineV, casterIDV, castShiftV, fettlerIDV, scrapCodeV, scrapTotalV, partIDV, gridRef1V, gridRef2V, qtyScrapV); 

감사합니다.

+1

예외는 무엇입니까? –

+0

어디에서'gridRef1V'를 사용하려고합니까? 블록이 존재하는 범위 인 블록 ('{}'사이)에서 선언하고 블록 외부에서 사용할 수 없습니다. 오류 메시지가 – Oded

+0

, 오류 \t이 컨텍스트 오류 그러나 내가 지금 무엇입니까 오류 '할당되지 않은 지역 변수의 사용을 제거있어 그것을 위해 이름'gridRef1V '는 현재 컨텍스트에 – fanle

답변

2

범위 오류가 있습니다. 이동

string gridRef1V; 

if 문 외부로 이동하십시오.

if 문 내부에 해당 변수가 있으면 해당 변수는 해당 코드 블록 외부에서 사용할 수 없습니다.

// gridRef1v doesn't exist 
    if (cbGridRef1.SelectedValue != null) 
    { 
     string gridRef1V = cbGridRef1.SelectedValue.ToString(); 
    } //gridRef1V no longer available after this } 
    else 
    { 
     // gridRef1v doesn't exist 
     MessageBox.Show("The grid ref1 field must contain a value"); 
     cbGridRef1.Focus(); 
    } 
    // gridRef1v doesn't exist 

은 당신이 원하는 것은 더 같은 것입니다 :

string gridRef1v; 
    if (cbGridRef1.SelectedValue != null) 
    { 
     gridRef1V = cbGridRef1.SelectedValue.ToString(); 
    } //gridRef1V still available after this } 
    else 
    { 
     // gridRef1v exists 
     MessageBox.Show("The grid ref1 field must contain a value"); 
     cbGridRef1.Focus(); 
    } 
    // gridRef1v exists 
+0

덕분에 존재하지 않는 1 \t gridRef1V '\t 은 삽입 코드의 동일한 비트를 가리 킵니다. – fanle

+0

gridRef1V에 초기 값을 할당해도 오류는 제거되지 않습니다. 도움을 다시 주셔서 감사합니다. – fanle

0

시도 :

string gridRef1V; 
if (cbGridRef1.SelectedValue != null) 
     { 
      gridRef1V = cbGridRef1.SelectedValue.ToString(); 
     } 
     else 
     { 
      MessageBox.Show("The grid ref1 field must contain a value"); 
      cbGridRef1.Focus(); 
     } 

당신은 블록이 다른 곳에서 그것을 사용하는 경우 그 범위를 벗어나는 gridRef1V를 선언해야합니다.