Vb.net comment utiliser le filtre avec COMME clause lorsque le filtre de texte contient %?
Je veux filtrer un texte dans toutes les colonnes dans un datagridview. Donc j'utilise Comme % dans le filtre de texte. Cependant, j'ai trouvé que le texte(strFilter dans mon code) peut contenir % parfois. Ainsi, il a une erreur de syntaxe. Comment puis-je utiliser le filtre avec comme clause lorsque le filtre de texte contient %?
Private Sub PassFilter(ByRef dataTable As DataTable, ByVal strFilter As String)
Try
Dim dataview As DataView = dataTable.DefaultView
Dim strExp As String = ""
For Each col As DataColumn In dataTable.Columns
If Not String.IsNullOrEmpty(strFilter) Then
If strExp = "" Then
strExp += "[" & col.ColumnName & "]" & " LIKE '%" & strFilter & "%'"
Else
strExp += " OR " & "[" & col.ColumnName & "]" & " LIKE '%" & strFilter & "%'"
End If
End If
Next
dataview.RowFilter = strExp
Catch ex As Exception
ShowMessage("Unable to filter datagridview." + ex.Message)
End Try
End Sub
- Même question, de caractères différents. stackoverflow.com/questions/439495/...
Vous devez vous connecter pour publier un commentaire.
essayer de s'échapper % dans les crochets: % ->[%], avec un remplacement avant de appliyng le filtre.
Voici la "bonne" façon - l'utilisation d'une "séquence d'échappement":
http://msdn.microsoft.com/en-us/library/ms378045.aspx
Un autre (non portable) façon dans SQL Server est d'utiliser les crochets: