gpt4 book ai didi

vb.net - 使用文本框 (vb.net) 在 datagridview 中搜索列

转载 作者:行者123 更新时间:2023-12-04 04:41:49 24 4
gpt4 key购买 nike

如何使用文本框搜索 datagridview 中的列?我正在使用 vb.net 2010。我有一个带有数据源的 Datagridview。下面是我用于填充 datagridview 的代码。 gridview 将有 4 列。

Private Sub LoadProducts()
Dim CS As String = ConfigurationManager.ConnectionStrings("HRMS.My.MySettings.ResortDBConnectionString").ConnectionString
Using con As SqlConnection = New SqlConnection(CS)
Dim da As SqlDataAdapter = New SqlDataAdapter("sp_NET_GetProducts_CompanyID", con)
da.SelectCommand.CommandType = CommandType.StoredProcedure
da.SelectCommand.Parameters.AddWithValue("@CompanyID", CInt(ConfigurationManager.AppSettings("CompanyID")))

Dim ds As DataSet = New DataSet
da.Fill(ds)
ds.Tables(0).TableName = "Products"

dgvProducts.DataSource = ds.Tables("Products")
dgvProducts.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
dgvProducts.AllowUserToResizeColumns = True
dgvProducts.Refresh()
End Using
End Sub

要求:在我的表格中,我将有一个 textboxbutton .文本框将提供搜索字符串。我需要一种在找到字符串时突出显示行的方法。

我不想打开另一个连接只是为了在数据集上搜索字符串。是否可以直接在 datagridview 中搜索字符串值?

最佳答案

在这里,您有一个示例代码可以执行您想要的操作:

Dim toSearch As String = "this"
Dim colNum As Integer = 0
Dim res = ds.Tables("Products").AsEnumerable.Where(Function(x) x.Item(colNum).ToString() = toSearch).ToArray
For Each item In res
Dim curRow As Integer = ds.Tables("Products").Rows.IndexOf(item)
dgvSuppliers.Rows(curRow).DefaultCellStyle.BackColor = Color.Yellow
Next

上面的代码查找字符串 "this"Table "Products"的第一列并更改 BackColor匹配的行到黄色。

注意:此答案旨在以通常理解的“在数据源中搜索术语”的方式来回答 OP 的问题,即依靠查询。此外,人们往往更喜欢涉及较少行数的解决方案。这两个原因解释了为什么我依赖这种方法(这与 OP 的静音性一起)。 OP 决定回答他自己认为更好的问题。我个人更喜欢他发布的迭代解决方案(尽管我认为这种方法对于使用 DataGridView 的任何人来说都是显而易见的)。在任何情况下,如果不知道确切的条件(大小),就不能先验地说明哪个选项更有效。这篇笔记的重点是强调我不建议定期依赖基于 LINQ 的方法,只是写了 OP 显然在寻找的东西(不幸的是,我很不擅长解释不解释的人的期望清楚地寻找并避免任何形式的交流)。

关于vb.net - 使用文本框 (vb.net) 在 datagridview 中搜索列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18782944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com