2016-04-21 26 views
0

我真的被困在了我的想法上,但需要一些例子,我希望有人能幫助,我真的很感激。我有一個DataGridView,從MySQL數據庫拉下來的數據,數據由數百行組成,每一行都有一個位置單元格,即。(01A,02A,03A)一直到99Z,我想要的是爲用戶輸入一個位置範圍和datagridview來過濾掉其他所有內容。VB.Net,按用戶輸入的範圍過濾DataGridView

使用兩個文本框和一個按鈕的示例。 用戶在文本框1中輸入'05C',在文本框2中輸入'10E',然後單擊確定。 datagridview將過濾除了包含「05C」和「10E」之間的所有位置的行之外的所有內容。

所有地點從A到Z和1每個字母到99

我希望我所描述的這種不夠好,我會很感激,如果有人可以給我舉幾個例子,我用Google搜索和搜索,但無法找到任何我正在尋找的例子。

很多謝謝。 如果您願意,請隨時給我私人消息。

+0

聽起來像你想要一個DataView – Plutonix

+0

如果我使用了一個DataView,下面的工作是否會? DataView.RowFilter =「位置> = 05C和位置<= 10E」 – Matt

+0

你可以改變表格。 您可以將字母和數字值分爲2列[ColAlph]和[ColNum]。然後,您可以選擇行 其中[colalph]> = rangestartAlph和[colalph] <= rangeEndAlph並且[ColNum]> = rangestartNum和[ColNum] <= rangeEndNum 如果您有想法,請原諒您的語法。 – ThatGuy

回答

0

編輯改變答案,以適應OP要求

您可以過濾你的數據源,以獲得您需要的結果。 在您的過濾器按鈕事件做

Dim bs As New BindingSource 
     bs.DataSource = 'Here goes the datasource of your gridview' 
     bs.Filter = gridCreation.Columns(i).HeaderText.ToString() + ">=" + TextBox1.Text + " and " + gridCreation.Columns(i).HeaderText.ToString() + "<=" + TextBox2.Text 
     //i would be the column number where your location row is. 
     //Remember that the index starts on 0 

     DataGridView.DataSource = bs 
     DataGridView.DataBind() 

希望這有助於

+0

謝謝,但它是一個WinForms應用程序而不是web。 – Matt

+0

@Matt請檢查我編輯的答案 – abichango

0

我認爲你必須要重新選擇的所有數據,然後再存放到您的datagridview

SELECT <whatever> FROM <yourtable> WHERE ID >= '" & TextBox1.Text & "' and ID <= '" & TextBox2.Text & "'" 'I thought that it was the ID column lol idk, change it to whatever it must be. 

然後存儲查詢爲your_datagridview.DataSource,那麼你的datagridview將重新加載所有的數據。

在Click事件中輸入your_button

希望這會有所幫助。