[AJUDA] ERRO DE CONVERSAO

TREK 14/09/2012 23:06:23
#409721
Bom estou começando com visual basic e estou com um erro aqui que não consegui resolver;
Estou criando uma aplicação para aprendizado como se fosse um caixa de venda de produtos.
carrego nomes dos produtos para um ComboBox que veio do banco de dados access, selecionado o produto joga o nome do produto para um ListBox e o valor do item para outro ListBox ate ai tudo bem.
Agora quero fazer a soma do produtos listados no 2 listbox só que quando vou abrir da um erro.
Citação:

A conversão da cadeia de caracteres [ô]valor_produto[ô] no tipo [ô]Double[ô] não é válida.



olha como esta.

Citação:

Dim con As New OleDb.OleDbConnection
con.ConnectionString = My.Settings.CNS
con.Open()
Dim comando As New OleDbCommand
comando.CommandText = [Ô]SELECT nome_produto,valor_produto FROM TB_produto WHERE nome_produto = [ô][Ô] & ComboBox1.Text & [Ô][ô][Ô]
comando.CommandType = CommandType.Text

comando.Connection = con
Dim leitor As OleDbDataReader
leitor = comando.ExecuteReader()


Dim soma As Single
Do While leitor.Read
ListBox1.Items.Add(leitor([Ô]nome_produto[Ô]))
ListBox2.Items.Add(leitor([Ô]valor_Produto[Ô]))
soma = soma + [Ô]valor_produto[Ô]
vTotal.Text = soma
Loop

con.Close()

ROGERRAFAEL 15/09/2012 08:45:56
#409733
Pelo que estou vendo em seu código ele está dando esse erro pq voce está tentando somar um retorno do banco([Ô]valor_produto[Ô]) mas esta fazendo de uma forma errada, pois o certo seria o seguinte : soma = soma + CDbl(leitor([Ô]valor_produto[Ô]))

Pq dessa forma que voce não irá pegar o retorno do banco de dados, somente esta colocando uma string.

Espero ter ajudado.
MARCELO.TREZE 15/09/2012 15:13:17
#409755
Faça soma separado, é simples

Dim con As New OleDb.OleDbConnection
con.ConnectionString = My.Settings.CNS
con.Open()
Dim comando As New OleDbCommand
comando.CommandText = [Ô]SELECT nome_produto,valor_produto FROM TB_produto WHERE nome_produto = [ô][Ô] & ComboBox1.Text & [Ô][ô][Ô]
comando.CommandType = CommandType.Text

comando.Connection = con
Dim leitor As OleDbDataReader
leitor = comando.ExecuteReader()


Dim soma As Single
Do While leitor.Read
ListBox1.Items.Add(leitor([Ô]nome_produto[Ô]))
ListBox2.Items.Add(leitor([Ô]valor_Produto[Ô]))
Loop

[txt-color=#0000f0]Soma = 0
For L = 0 To ListBox2.Listcount -1
Soma = Soma + ListBox2.List(L)
Next L
vTotal.Text = soma[/txt-color]
con.Close()
TREK 18/09/2012 19:42:45
#409929
Opa valeu galera deu certo.
nao tinha colocado o leitor
Citação:

soma = soma + CDbl(leitor([Ô]valor_produto[Ô]))


agora funciono perfeita mente
Obrigado ai..
TREK 18/09/2012 21:20:34
#409935
Bom galera agora eu fiz um textBox chamado vDinheiro e um Label chamado vTroco
Eu queria digital um valor no TextBox que seria o valor que o cliente teria dado para paga oque compro, e subtrair do valor total e mostrasse o troco dele no vtroco
como poderia fazer ?



Uploaded with ImageShack.us

Eu fiz Assim mais nao esta subtraindo corretamente

Citação:

Dim con As New OleDb.OleDbConnection
con.ConnectionString = My.Settings.CNS
con.Open()
Dim comando As New OleDbCommand
comando.CommandText = [Ô]SELECT nome_produto,valor_produto FROM TB_produto WHERE nome_produto = [ô][Ô] & NomeProd.Text & [Ô][ô][Ô]
comando.CommandType = CommandType.Text

comando.Connection = con
Dim leitor As OleDbDataReader
leitor = comando.ExecuteReader()



Do While leitor.Read
ListaProduto.Items.Add(leitor([Ô]nome_produto[Ô]))
ListaValor.Items.Add(Format(leitor([Ô]valor_Produto[Ô]), [Ô]c[Ô]))
soma = soma + CDbl(leitor([Ô]valor_produto[Ô]))
vTotal.Text = Format(soma, [Ô]c[Ô])


subtra = subtra - soma
vTroco.Text = Format(subtra, [Ô]c[Ô])

Loop



con.Close()

FEDERHEN 19/09/2012 08:12:24
#409940
Citação:

:
... estou começando com visual basic ...



Amigo, ....
Se está começando, então começa logo com .NET
MARCELO.TREZE 19/09/2012 09:33:05
#409944
colega

é

Troco = Dinheiro - Total

ou seja


 Dim con As New OleDb.OleDbConnection
con.ConnectionString = My.Settings.CNS
con.Open()
Dim comando As New OleDbCommand
comando.CommandText = [Ô]SELECT nome_produto,valor_produto FROM TB_produto WHERE nome_produto = [ô][Ô] & NomeProd.Text & [Ô][ô][Ô]
comando.CommandType = CommandType.Text

comando.Connection = con
Dim leitor As OleDbDataReader
leitor = comando.ExecuteReader()



Do While leitor.Read
ListaProduto.Items.Add(leitor([Ô]nome_produto[Ô]))
ListaValor.Items.Add(Format(leitor([Ô]valor_Produto[Ô]), [Ô]c[Ô]))
soma = soma + CDbl(leitor([Ô]valor_produto[Ô]))
vTotal.Text = Format(soma, [Ô]c[Ô])
Loop

vTroco.Text = Format(CDbl(vDinheiro.Text) - CDbl(vTotal.Text), [Ô]c[Ô])

con.Close()

TREK 19/09/2012 11:05:20
#409964
Valeu marcelo funciono.
eu tinha tentado fazer da quele jeito mais não tinha funcionado por que tinha colocado o ( CDbl )
e também não estava colocando entre parentes.

Citação:

:Se está começando, então começa logo com .NET



esse .NET que você diz seria o ASP.NET ?
MARCELO.TREZE 19/09/2012 11:34:51
#409970
Não o colega diz vb.Net ou seja ultima versão Visual Studio 2010

TREK 19/09/2012 12:05:08
#409975
Qual a Diferença do que eu fiz para o vb.net ?
MARCELO.TREZE 19/09/2012 14:23:10
#409995
Bom colega a diferença é que a linguagem de programação .net é mais avançada, apesar de muitos comandos serem parecidos, ainda sim existe muita coisa diferente, então como o colega disse se vc procurar começar com vb.net será mais fácil que migrar do vb6 para vb.net.

baixe a versão 2010 express (versão gratuita), no próprio site da microsoft.

Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas