2014-01-22 48 views
1

我在C#中使用Linq Query填充我的Datagridview。我想用Textbox過濾這個datagridview。DataGridView篩選器中的錯誤

TextBox的代碼改變的事件是:

DataTable dt = new DataTable(); 

dt = (DataTable)(dataGridViewX4.DataSource); 

dt.DefaultView.RowFilter = string.Format("T_P = '{0}'", Txt_T_P_Se.Text); 

dataGridViewX4.DataSource = dt; 

運行程序後,會出現這樣的錯誤:

無效轉換的例外是未處理的。任何幫助理解這個問題將不勝感激。

我的數據源是:

變種查詢= (從QcGerdBaf.Taghes p其中p.QGI_Id_Fk == QGI_Id_Selected選擇新的{p.T_P,p.T_Id});

dataGridViewX4.DataSource = Query.ToList();

+0

在哪條線路到底如何? –

回答

0

試試這樣,只是編輯信息。

(dataGridViewX4.DataSource as DataTable).DefaultView.RowFilter = string.Format("ID = '{0}'", Txt_T_P_Se.Text); 

清除你的代碼,這應該工作。

//DataTable dt = new DataTable(); 

//dt = (DataTable)(dataGridViewX4.DataSource); 

//dt.DefaultView.RowFilter = string.Format("T_P = '{0}'", Txt_T_P_Se.Text); 

//dataGridViewX4.DataSource = dt; 
+0

嗨 感謝您的關注 我試試你的代碼,但收到相同的錯誤。 – Erfani

+0

我編輯答案。 – user3218707

1

嘗試像這樣

int value; 
DataTable dt = new DataTable(); 
dt = (DataTable)(dataGridViewX4.DataSource); 
dt.DefaultView.RowFilter = string.Format("T_P = {0}",int.TryParse(Txt_T_P_Se.Text, out value)); 
dataGridViewX4.DataSource = dt; 
+0

嗨,你的代碼和我的代碼一樣。 – Erfani

+0

查看{0}附近的區別 –

+0

我試試這個,但收到相同的錯誤。 – Erfani