BINDINGSOURCE -> BINDINGLIST

 Tópico anterior Próximo tópico Novo tópico

BINDINGSOURCE -> BINDINGLIST

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#499737 - 27/04/2022 23:45:12

PITERGALDIANO
RIO VERDE
Cadast. em:Dezembro/2012


Tenho o código abaixo:

      
Dim dados As New BindingSource
Dim dfep As New Desconto_Financeiro_Excecao_Produtos
dados.DataSource = New BindingList(Of Desconto_Financeiro_Excecao_Produtos)(dfep.Lista(txtCodigo_Parceiro.Text, Codigo_Produto, True, False)).Where(Function(x) x.Codigo_Produto = ValorBuscar)
/

Acontece que quando informo na expressão lambda o ValorBuscar, cujo valor não esteja no retorno dos dados (um código inexistente), ocorre um erro devido o dados.datasource estar vinculado a um datagridview.

Seguinte erro:
Não é possível ligar à propriedade ou à coluna codigo_produto em DataSource.
Nome do parâmetro: dataMember

Se o código informado no valor de busca existir, o datagridview é populado corretamente.

como faço para contornar isso?

Obrigado.

Piter Galdiano

Resposta escolhida #499738 - 28/04/2022 00:57:03

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Faça a lista numa variável e passe a variável para o datasource, verificando antes se não está null

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#499739 - 28/04/2022 09:30:06

PITERGALDIANO
RIO VERDE
Cadast. em:Dezembro/2012


KERPLUNK, consegui o resultado esperado no seguinte código, porém duas questões:

1. No objeto List não consigo usar expressão lambda. Então usei outro objeto 'myLista' que retona o filtro usando expressão lambda
2. No objeto 'myLista' como faço para verificar se está em branco, não tem a propriedade 'Cont' no mesmo. Tinha pensado em algo 'myLista.Count <=0'

  
Dim lista As New List(Of Desconto_Financeiro_Excecao_Produtos)()
lista = (New List(Of Desconto_Financeiro_Excecao_Produtos)(dfep.Lista(txtCodigo_Parceiro.Text, Codigo_Produto, True, False)))
Dim mylista
mylista = (New BindingList(Of Desconto_Financeiro_Excecao_Produtos)(lista)).Where(Function(x) x.Codigo_Produto = Busca)


Obrigado.

Piter Galdiano

#499747 - 28/04/2022 19:42:19

PITERGALDIANO
RIO VERDE
Cadast. em:Dezembro/2012


Precisava fazer a consulta da seguinte forma:

lista = lista.FindAll(Function(x) x.Descricao_Produto like ''%texto%a%procurar%'')

Exatamente igual no SQL, de forma que localize a palavra inteira ou parte da palavra.

Piter Galdiano

#499750 - 29/04/2022 01:40:30

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Acho que usando os coringas consegue esse resultado que quer
dim busca as string
busca = 'texto a procurar'
busca = '*' & busca.Replace(' ', '*')  & '*'
mylista = (New BindingList(Of Desconto_Financeiro_Excecao_Produtos)(lista)).Where(Function(x) x.Codigo_Produto.Contains(busca)

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#499751 - 29/04/2022 09:45:06

PITERGALDIANO
RIO VERDE
Cadast. em:Dezembro/2012


Infelizmente não aceita os caracteres curingas....

Piter Galdiano

 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por PITERGALDIANO em 23/05/2022 06:17:13