2013-03-01 48 views
0

我有一個datatable,顯示在DataGridView來自DataTable的SELECT值

我希望用戶在datagridview中選擇一個值,並將該值用作篩選器以查找datatable中的另一個值。

所以像:

SELECT col2 from DataTable2 where col1= 
(value in selected cell of the DataGridView) 

編輯

OK,我已經添加了一些額外的信息,不知道我問正確的問題:

我有一個提示在datagridview如下:

Sub dataGridView1_CellFormatting(ByVal sender As Object, _ 
    ByVal e As DataGridViewCellFormattingEventArgs) _ 
    Handles DataGridView1.CellFormatting 

    If e.ColumnIndex = Me.DataGridView1.Columns("Last Stop").Index _ 
     AndAlso (e.Value IsNot Nothing) Then 

     With Me.DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex) 

      .ToolTipText = '(THIS IS WHERE I'M STUCK) 

     End With 

    End If 

End Sub 

我被困在上面的一點是我想使用Last Stop所以e.Value值來查找一個名字在我的DataTable -

ToolTipSN.Tables(「DT_ToolTip」)

+0

看看[此鏈接(HTTP://social.msdn .microsoft.com /論壇/ en-CA/csharpgeneral/thread/46d650fd-6d11-46a6-91cb-fa3707eab7b1) – Belial09 2013-03-01 09:50:18

+0

這是不是隻是從DataGridView返回值?我有這個價值,我需要的是如何查詢另一個DataTable的價值 – user1295053 2013-03-01 09:52:32

+1

這是否有幫助? [LINK](http://stackoverflow.com/questions/3362260/how-to-make-c-sharp-datatable-filter) – Belial09 2013-03-01 09:55:19

回答

0

如果你想嚴格比較,區分大小寫的,確切的詞:

Dim selectedCells = DataGridView1.SelectedCells.Cast(Of DataGridViewCell)() 
If selectedCells.Any Then 
    Dim filteredRows = From row In datatable2 
     Join cell In selectedCells On row.Field(Of String)("col2") Equals cell.Value 
     Select row 
    ' either use For Each to enumerate the result: 
    For Each row In filteredRows 
     Dim col2 = row.Field(Of String)("col2") 
     ' ... 
    Next 
    ' or use filteredRows.CopyToDataTable to create a new DataTable from the result 
End If 

如果你想允許任何選定的細胞,不區分大小寫(沒有加入低效率)的:

Dim filteredRows = From row In datatable2 
    Where selectedCells.Any(Function(c) StringComparer.OrdinalIgnoreCase.Equals(c.Value, row("col2"))) 

如果你想允許任何選定的單元格,不區分大小寫和單詞的一部分需要匹配:

Dim filteredRows = From row In datatable2 
    Where selectedCells.Any(Function(c) CStr(c.Value). 
     IndexOf(row.Field(Of String)("col2"), StringComparison.OrdinalIgnoreCase) > -1) 
+0

我已經添加了一些額外的信息,因爲我不確定我是否提出了正確的問題 – user1295053 2013-03-01 10:20:43