Carrinho de Compras

29/10/2008

0

Ola Novamente



Dessa vez eu estou desenvolvendo uma rotina similar a de um carrinho de compras que felizmente esta funcionando bem.



Eu seleciono um campo no DropDown que sera o campo ID para o carrinho.Eu estou usando DataSet/DataTable para incluir os dados no carrinho e grava-los de uma so vez ao final.



Acontece que alem desse campo ID do combo eu tenho tambem um campo codigo associado.



Ex : Eu tenho o codigo 1 e o ID= 1

Codigo 1 e ID= 2

Codigo 3 e ID=3



Nas rotinas usando essa rotina similar ao carrinho de compras que usei ate hoje, nunca surgiu a situacao em que eu tinha que incluir o mesmo ID 2 vezes e mesmo que surgisse bastaria eu verificar a quantidade anterior e apenas somar a nova quantidade fornecida.



Porem neste caso eu terei que incluir no carrinho o mesmo ID ´N´ vezes, porem sempre com o campo codigo diferente do anterior.



Como eu faco isso?



Abaixo a rotina que estou usando :



´obtem a tabela do dataset e atribui ao datable local

Dim dt As DataTable = ObterDocumentos().Tables(0)

´localiza o codigo do produto na tabela



Dim row As DataRow = dt.Rows.Find(Convert.ToDouble(CboFormato.SelectedItem.Value))

If row Is Nothing Then

´se nao achou cria uma nova linha

row = dt.NewRow()

row(´itemID´) = Convert.ToDouble(CboFormato.SelectedItem.Value)

row(´REL_DOCUMENTO´) = TxtDocumento.Text.Trim

row(´FORMATO_ID´) = Convert.ToDouble(CboFormato.SelectedItem.Value)

row(´FORMATO_NOME´) = CboFormato.SelectedItem.Text.Trim

row(´REL_PREVINI´) = CDate(TxtInicioPrevisto.Text)

row(´REL_PREVFIM´) = CDate(TxtTerminoPrevisto.Text)

row(´ESPEC_ID´) = CboEspecialidade.SelectedItem.Value

row(´ESPEC_NOME´) = CboEspecialidade.SelectedItem.Text.Trim

row(´REL_HORASPREVISTAS´) = Convert.ToDouble(TxtHorasPrevistas.Text.Trim)

row(´COLABOR_ID´) = CboColaborador.SelectedItem.Value

row(´USER_NOME´) = CboColaborador.SelectedItem.Text.Trim

´inclui a linha no datable

dt.Rows.Add(row)

Else

´se a linha ja existir então apenas altera a quantidade

´Dim qtd As Integer = Convert.ToInt32(row(´Quantidade´))

´qtd = qtd + quantidade

´row(´Quantidade´) = qtd

End If

Catch ex As Exception

lblMensagem.Text = ´Ocorreu um Erro Inesperado : ´ & vbCrLf & ex.Message & vbCrLf ´ & ex.InnerException.ToString

Finally

conexao.Close()

End Try



Eu quero incluir um produto digamos no carrinho de compras, tendo como base o ID e um codigo de servico.

O meu problema esta basicamente na linha abaixo :



Dim row As DataRow = dt.Rows.Find(Convert.ToDouble(CboFormato.SelectedItem.Value))

O Row nao aceita valores tipo String e eu preciso verificar se a linha digitada ja existe baseado no ID (CboFormato.SelectedItem.Value) e em um codigo (Que nao e o do produto)



E agora? Deu para entender ?





Muito Obrigado


Sid.sil

Sid.sil

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar