如何 link 一个字符串到 VB.net 中的 datagridview

How to link a string to a datagridview in VB.net

我有一个包含多个值的数据集。使用 Regex,我可以从数据表 BLABLA 中获取特定行。我将它们存储在字符串 answer 中。 现在我想在数据网格视图中显示 answeranswer 中的一行是这样的:

A24.06.2018 13:20:34BLABLA 11/1110 A 2S3/11 1234C:\Users\someone\Desktop\file

datagridview 已经包含所需的列。这些行需要适合列,这意味着它们需要根据 columns.I 从未与 DataSource 一起使用,所以我不知道它应该是什么样子。

我已经尝试在 MessageBox 中显示 answer 以查看是否有我搜索的值,我确实有。但是当我尝试 ErrorsDGV.DataSource = answer 时没有任何反应。

Dim answer As String = ""
Dim myregex As Regex = New Regex("S[0-6]")

Dim SearchRows() As DataRow = datasetB.Tables("BLABLA").Select().
Where(Function(r) myregex.IsMatch(r.Item("Data"))).ToArray()

For k As Integer = 0 To SearchRows.Length - 1
    If answer = "" Then
        answer = String.Join("", SearchRows(k).ItemArray())
    Else
        answer = answer & vbNewLine & String.Join("", SearchRows(k).ItemArray())

    End If
Next

ErrorsDgV.DataSource = answer

我做错了什么? DataSource 必须如何才能用作 DataGridView 的源? 提前致谢。

您不需要此代码:

For k As Integer = 0 To SearchRows.Length - 1
    If answer = "" Then
        answer = String.Join("", SearchRows(k).ItemArray())
    Else
        answer = answer & vbNewLine & String.Join("", SearchRows(k).ItemArray())

    End If
Next

此处已有要显示的行:

Dim SearchRows() As DataRow = datasetB.Tables("BLABLA").Select().
Where(Function(r) myregex.IsMatch(r.Item("Data"))).ToArray()

因此将网格数据源设置为:

ErrorsDgV.DataSource = SearchRows

我可以通过使用 CopyToDataTable 并将 SearchRows 更改为 DataTable 而不是 DataRow 来解决问题,如下所示:

Dim SearchRows As DataTable = datasetB.Tables("BLABLA").Select().
    Where(Function(r) myregex.IsMatch(r.Item("Data"))).ToArray().CopyToDataTable

然后我使用 SearchRows 作为我的数据源

ErrorsDgV.DataSource = SearchRows