2011-10-05 67 views
-2

我做了一個winform,從SQL數據庫中繪製數據,搜索我有組合框 - cboField和cboOperator,我正在使用txtValue。形式是關於汽車,當我把(cboField)支付(cboOperator)=(txtValue)福特它崩潰。我該如何阻止它這樣做,反過來又如何呢?使汽車的= 5嘗試捕捉,在文本字段中的數字

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; 

這是運行按鈕

click事件,它說評價的例外是未處理對我的代碼我粘貼

+1

能不能請你寫下你的代碼片段澄清你的問題? –

+1

這個問題不是很清楚。代碼會更清晰,關於它在崩潰時發生的異常的詳細信息 –

+0

你甚至對於自己有意義嗎?另外,在提供的代碼中,拋出異常的地方在哪裏? – Zenwalker

回答

0

最後一行我想你想阻止用戶在文本字段中放置類似「5」的東西,因爲它會導致您的數據綁定源過濾器拋出一個EvaluateException?

很難說正是你要尋找的,但如果是這樣的話,嘗試這樣的事情:

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

是的,這是正確的,它現在工作正常,但是當我說支付=福特它說不能對System.Decimal和System.String執行操作「=」,我試圖讓它bug的證明 – JaredH20

+0

好吧,如果你沒有需要以不同的方式處理不同的異常,然後刪除特定的異常類型。我編輯了代碼來代替所有異常。 – 2011-10-05 11:00:48

+0

請注意,您可能想要在不同的道路上處理不同的例外情況......請記住這一點。這就是爲什麼我把它放進去,這是很好的做法。 – 2011-10-05 11:01:37