Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net SQL Server类通配符搜索_Vb.net_Ms Access_Wildcard - Fatal编程技术网

Vb.net SQL Server类通配符搜索

Vb.net SQL Server类通配符搜索,vb.net,ms-access,wildcard,Vb.net,Ms Access,Wildcard,我正在尝试使用通配符筛选记录 sSubStr = "WHERE [Document Name] LIKE '%" + sFilter + "%' " 当我尝试查找列[Document Name]中包含字母字符的部分时,所有这些都可以正常工作,但当我使用数字组合时,它们不会返回任何内容,如dib2000118 示例数据:THIS.IS.MY.DOCUMENT.NAME.dib2000118.20210332.DOC我发现更改Listview的填充方式会产生

我正在尝试使用通配符筛选记录

sSubStr = "WHERE [Document Name] LIKE '%" + sFilter + "%' "
当我尝试查找列
[Document Name]
中包含字母字符的部分时,所有这些都可以正常工作,但当我使用数字组合时,它们不会返回任何内容,如
dib2000118


示例数据:THIS.IS.MY.DOCUMENT.NAME.dib2000118.20210332.DOC

我发现更改Listview的填充方式会产生不同。在加载Listview之后,第一条记录不知何故从未显示过。记录计数总是少一个

Dim sSQL As String
            Dim sSubStr As String
            If sFilter = "" Then
                sSQL = "SELECT Id,[Document Type],[Document Name],DISnummer,XPostnummer,[Last Accessed],[Document Location] FROM Archief ORDER BY Id DESC"
            Else
                sSubStr = "WHERE [Document Name] LIKE '%" + sFilter + "%' "
                sSQL = "SELECT Id,[Document Type],[Document Name],DISnummer,XPostnummer,[Last Accessed],[Document Location] FROM Archief " + sSubStr + " ORDER BY Id DESC"
            End If
            Dim cmd As New OleDbCommand(sSQL, con)
            Using dr As OleDbDataReader = cmd.ExecuteReader
                Dim dis As String
                Dim docImage As VariantType
                Dim items As New List(Of ListViewItem)

                If dr.HasRows() Then

                    ListView1.BeginUpdate()
                    ListView1.Items.Clear()

                    While dr.Read
                        If dr("Document Type").ToString = "PDF" Or dr("Document Type").ToString = "pdf" Then
                            docImage = (ImageList1.Images.Count - 1)
                        ElseIf dr("Document Type").ToString = "doc" Or dr("Document Type").ToString = "docx" Then
                            docImage = (ImageList1.Images.Count - 3)
                        ElseIf dr("Document Type").ToString = "ppt" Or dr("Document Type").ToString = "pptx" Then
                            docImage = (ImageList1.Images.Count - 2)
                        ElseIf dr("Document Type").ToString = "xls" Or dr("Document Type").ToString = "xlsx" Then
                            docImage = (ImageList1.Images.Count - 4)
                        End If

                        dis = dr("Last Accessed").Substring(0, dr("Last Accessed").IndexOf(" "))
                        items.Add(New ListViewItem(New String() {"", dr("Document Name").ToString, dr("DISnummer").ToString, dr("XPostnummer").ToString, dis, dr("Id").ToString, dr("Document Location").ToString}, docImage))

                    End While
                    ListView1.Items.AddRange(items.ToArray)
                    ListView1.EndUpdate()
                Else
                    MsgBox("Nothing was found.",, Title)
                End If
                dr.Close()

            End Using

详细说明
失败
。给出示例数据、示例输入和预期结果。我尝试了您的示例数据,发现它们确实匹配。可能是数据或搜索词中存在不可见字符。
[Document Name]
列的数据类型是什么?@AndrewMorton它是MS ACCESS数据库中的一个文本字段啊,我在SQL Server中尝试过,因为标签上是这么说的;我已经为您编辑了它们,以便熟悉Access的人更容易看到这个问题。@AndrewMorton我编写SQL Server是因为我在VB.NET中编程并使用%通配符,而在Access中使用*通配符