Porque é que a minha datagridview.rowfilter não de trabalho.Eu recebo uma mensagem de erro de sintaxe

StackOverflow https://stackoverflow.com/questions/2343542

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ê?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top