2011-10-05 4 views
-2

SQL에서 데이터베이스의 데이터를 가져 오는 winform을 만들었습니다. 검색하려면 콤보 상자 - cboField 및 cboOperator가 있고 txtValue를 사용하고 있습니다. 폼은 자동차에 관한 것입니다. (cboField) Payment (cboOperator) = (txtValue) 포드가 충돌합니다. 어떻게하면이 작업을 중단하고 다른 작업을 중단 할 수 있습니까? 그것이 내가 당신이하려는 생각 평가의 예외 내가캐치 시도, 텍스트 필드의 숫자

+1

당신이 당신의 질문을 명확히하기 위해 코드의 조각을 적어 주실 수 있습니까? –

+1

질문이 명확하지 않습니다. 코드가 더 명확 해집니다. 충돌 할 때 발생하는 예외에 대한 세부 정보와 마찬가지로 –

+0

당신은 당신이 말하는 것에 대해서도 이해합니까? 거기에 정확히 제공된 코드에서 예외가 발생했습니다. – Zenwalker

답변

0

을 붙여 내 코드의 마지막 줄에 처리되지 않은이었다 말한다

private void btnRun_Click(object sender, EventArgs e) 
    { 
     if (cboField.SelectedIndex == -1) 
     { 
      return; 
     } 

     if (cboOperation.SelectedIndex == -1) 
     { 
      return; 
     } 

     if (txtValue.TextLength == 0) 
     { 
      return; 
     } 

     string filter; 
     filter = "[" + cboField.Text + "]"; 

     filter += cboOperation.Text + "'" + txtValue.Text + "'"; 

     tblCarBindingSource.Filter = filter; 

이 5 Run 버튼

에 대한 클릭 이벤트 = 자동차의 확인 데이터 바인딩 소스 필터가 EvaluateException을 던지기 때문에 사용자가 텍스트 필드에 "5"와 같은 것을 넣지 않도록하려면?

하드 당신이 찾고 있지만, 그런 경우라면,이 같은 시도하는지 정확히 말할합니다 :

try 
{ 
    tblCarBindingSource.Filter = filter; 
} 
catch 
{ 
    MessageBox.Show("Please enter valid values in your text fields."); 
} 
+0

네, 맞습니다. 지금은 잘 작동하고 있지만 Payment = Ford는 System.Decimal 및 System.String에서 "="작업을 수행 할 수 없다고 말하면 버그 증명을하려고합니다. – JaredH20

+0

그래, 없으면 다른 예외를 다르게 처리해야하는 경우 특정 Exception 유형을 제거하면됩니다. 대신 모든 예외를 잡아 코드를 편집했습니다. –

+0

도로를 따라 다르게 다른 예외를 처리하고 싶을 수도 있다는 사실을 명심하십시오. 그냥 명심하십시오. 그것이 내가 그것을 넣는 이유입니다. 그것은 좋은 습관입니다. –