【发布时间】:2024-01-12 08:58:01
【问题描述】:
这是我的第一篇文章,请告诉我如何改进。
我的问题分为两部分。首先,我正在创建一个搜索功能,该功能在文本框中获取文本,在数据库中引用它并将结果添加到数据网格视图中。它有效,但它区分大小写且冗长。我已经设法解决了敏感性问题,但并非没有添加大量线条。此外,我的方法是在数据网格视图中产生多个相同的结果。
我的问题是:有没有更简单的方法来编码这个搜索,我怎样才能让它不敏感?
dgvFileInfo.Rows.Clear()
If searchBox.Text = "" Then
ElseIf srchCrit = "ProjectNumber" Then
Dim srchDesc As String = ""
Dim rtrnDesc As String = ""
Dim j As Integer = 0
For Each row As DataRow In TblFiles.Rows
rtrnDesc = row.Item(srchCrit).ToString
srchDesc = searchBox.Text
If rtrnDesc.Contains(srchDesc) Then
dgvFileInfo.Rows.Add()
dgvFileInfo.Item(0, j).Value = row.Item("ProjectNumber").ToString
dgvFileInfo.Item(1, j).Value = row.Item("ProjectName").ToString
dgvFileInfo.Item(2, j).Value = row.Item("Client").ToString
dgvFileInfo.Item(3, j).Value = row.Item("City").ToString & ", " & row.Item("State").ToString
j += 1
End If
Next
Else
Dim srchDesc As String = ""
Dim rtrnDesc As String = ""
Dim j As Integer = 0
Dim letter As Char = searchBox.Text.Substring(0, 1)
Dim line As String = searchBox.Text.Substring(1, searchBox.Text.Length - 1)
For Each row As DataRow In TblFiles.Rows '***Here's my sensitivity issue**
rtrnDesc = row.Item(srchCrit).ToString
srchDesc = UCase(letter) & line
If rtrnDesc.Contains(srchDesc) Then
dgvFileInfo.Rows.Add()
dgvFileInfo.Item(0, j).Value = row.Item("ProjectNumber").ToString
dgvFileInfo.Item(1, j).Value = row.Item("ProjectName").ToString
dgvFileInfo.Item(2, j).Value = row.Item("Client").ToString
dgvFileInfo.Item(3, j).Value = row.Item("City").ToString & ", " & row.Item("State").ToString
j += 1
End If
srchDesc = LCase(letter) & line
If rtrnDesc.Contains(srchDesc) Then
dgvFileInfo.Rows.Add()
dgvFileInfo.Item(0, j).Value = row.Item("ProjectNumber").ToString
dgvFileInfo.Item(1, j).Value = row.Item("ProjectName").ToString
dgvFileInfo.Item(2, j).Value = row.Item("Client").ToString
dgvFileInfo.Item(3, j).Value = row.Item("City").ToString & ", " & row.Item("State").ToString
j += 1
End If
srchDesc = LCase(letter) & LCase(line)
If rtrnDesc.Contains(srchDesc) Then
dgvFileInfo.Rows.Add()
dgvFileInfo.Item(0, j).Value = row.Item("ProjectNumber").ToString
dgvFileInfo.Item(1, j).Value = row.Item("ProjectName").ToString
dgvFileInfo.Item(2, j).Value = row.Item("Client").ToString
dgvFileInfo.Item(3, j).Value = row.Item("City").ToString & ", " & row.Item("State").ToString
j += 1
End If
srchDesc = UCase(letter) & UCase(line)
If rtrnDesc.Contains(srchDesc) Then
dgvFileInfo.Rows.Add()
dgvFileInfo.Item(0, j).Value = row.Item("ProjectNumber").ToString
dgvFileInfo.Item(1, j).Value = row.Item("ProjectName").ToString
dgvFileInfo.Item(2, j).Value = row.Item("Client").ToString
dgvFileInfo.Item(3, j).Value = row.Item("City").ToString & ", " & row.Item("State").ToString
j += 1
End If
Next
End If
【问题讨论】:
-
一种改进方法——不要发布太多不相关的代码。另一种方法是在发布 VB.NET 问题时始终包含 vb.net 标记。这样,VB.NET 专家就会看到您的问题。
标签: vb.net search case-insensitive