如何 link 一个字符串到 VB.net 中的 datagridview
How to link a string to a datagridview in VB.net
我有一个包含多个值的数据集。使用 Regex,我可以从数据表 BLABLA 中获取特定行。我将它们存储在字符串 answer
中。
现在我想在数据网格视图中显示 answer
。
answer
中的一行是这样的:
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
我有一个包含多个值的数据集。使用 Regex,我可以从数据表 BLABLA 中获取特定行。我将它们存储在字符串 answer
中。
现在我想在数据网格视图中显示 answer
。
answer
中的一行是这样的:
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