Porque é que a minha datagridview.rowfilter não de trabalho.Eu recebo uma mensagem de erro de sintaxe
-
23-09-2019 - |
Pergunta
A minha candidatura tem um preenchida datatable e o associa a um ddatagridview definindo a propriedade de origem de dados.
Em tempo de execução que deseja filtrar esta tabela.Quando o usuário clica em um botão que eu execute o seguinte código:
dataManager.VDMSTables.DataTable.DefaultView.RowFilter = column + " LIKE '%" + criteria + "%'";
Todas as classes são preenchidos corretamente.Em tempo de execução quando eu chegar a esta linha de eu receber a seguinte mensagem de erro:
Erro de sintaxe:Falta operando depois de 'Dados' operador.As variáveis que eu uso para construir o rowfilter são preenchidos corretamente.Mesmo quando eu codificar uma cadeia de eu ainda ter esse mesmo erro.Por quê?
Solução
O que faz a seqüência real que você está construindo aparência quando você exibi-lo no depurador?A palavra "Dados" não aparecer lá, não é?
Se assim for, então ele está dizendo a você que Data é uma palavra reservada e você precisa marcá-lo como tal.Como em:
dataManager.VDMSTables.DataTable.DefaultView.RowFilter
= String.Format("[{0}] LIKE '%{1}%'"
, column
, YourSingleQuoteEscape(criteria) );
Que irá produzir:
"[Data] like '%strawberries%'"
...que deve analisar corretamente o seu RowFilter.