Usuário com melhor resposta
Erro ao concatenar campos em uma textbox multiline

Pergunta
-
boa tarde,
Estou colocando esse código para o sistema pesquisar um campo de controle e todos os campos que contiverem o mesmo código de controle ele me retornar os comentários concatenados em um textbox multiline, mas está dando um erro na parte em negrito:
Private Sub btabrir_Click(sender As Object, e As EventArgs) Handles btabrir.Click Dim lista = From cadastro In CadastrotesteDataSet.cadastro Where cadastro.vinculo = tbcodigo.Text Select cadastro.nome, cadastro.cidade, cadastro.vinculo For Each cadastro In lista tbnome.Text = cadastro.nome tbcidade.Text = cadastro.cidade tbcontrole.Text = cadastro.vinculo
Next
Dim ListaComentarios As New List(Of String)(From historic In CadastrotesteDataSet.historic Where historic.vinculo = tbcodigo.Text Select historic.historico).ToList() Dim stb As New StringBuilder For Each comentario As String In ListaComentarios stb.Append(comentario & Environment.NewLine) Next tbhistorico.Text = ToString()
O erro é "End of Statement expected.
Respostas
-
tbhistorico.Text = ToString()
Quando vc chama qualquer método não estático (como é o caso do ToString) no código de um form, sempre é chamado para a instância atual do form. É o mesmo que fazer Me.ToString().
Então este texto "Duas_Tabelas.Form1, Text: Cadastro" é o retorno desta função.
"Cadastro" é o valor da propriedade Text do seu form.
Para colocar o texto da lista no textbox deve fazer assim:tbhistorico.Text = String.Join(Environment.NewLine, ListaComentarios)
A função String.Join junta os valores de uma coleção de strings.
Por favor, marque as postagens úteis e as soluções.
ATT
- Marcado como Resposta Eduardo Pietro terça-feira, 15 de agosto de 2017 01:57
Todas as Respostas
-
Boa tarde, Eduardo Pietro.
Estaremos estudando teu caso, e logo daremos um retorno.
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Bom dia,
Dá uma olhada nesse link:
https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/error-messages/end-of-statement-expected
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Bom dia, Eduardo.
Neste caso é preciso colocar a expressão Linq com o ToList entre parênteses para que isto seja usado pelo construtor da lista.
Dim ListaComentarios As New List(Of String)( (From historic In CadastrotesteDataSet.historic Where historic.vinculo = tbcodigo.Text Select historic.historico ).ToList() )
ATT -
Aristides obrigado pelo retorno,
Agora deu outro erro, quando eu pesquiso o item no campo que deveria aparecer todos os comentários daquele cliente aparece:
"Duas_Tabelas.Form1, Text: Cadastro"
Duas_Tabelas é o nome do projeto
Form1 é o formulário que estou crianda
Text: Cadastro eu não sei mas acho que é referência a uma das tabelas do banco de dados.
Sabe porque desse erro?
Eduardo Pietro
-
tbhistorico.Text = ToString()
Quando vc chama qualquer método não estático (como é o caso do ToString) no código de um form, sempre é chamado para a instância atual do form. É o mesmo que fazer Me.ToString().
Então este texto "Duas_Tabelas.Form1, Text: Cadastro" é o retorno desta função.
"Cadastro" é o valor da propriedade Text do seu form.
Para colocar o texto da lista no textbox deve fazer assim:tbhistorico.Text = String.Join(Environment.NewLine, ListaComentarios)
A função String.Join junta os valores de uma coleção de strings.
Por favor, marque as postagens úteis e as soluções.
ATT
- Marcado como Resposta Eduardo Pietro terça-feira, 15 de agosto de 2017 01:57
-