Não estou conseguindo salvar mais de uma linha do datagrid no banco de dados.
segue imagem a baixo e configuração
PublicClass frmVendasPedidos
InheritsSystem.Windows.Forms.Form'Definir o objeto bd da classe JcmSoftDataContextDim bd AsNew dcVRDataContext
'Definir objeto da clase DetalhesPedidosDim oDetalhesPedidos AsDetalhesPedidosDim nomeProduto AsStringDim codProduto AsStringDimQuantidadeUniAsIntegerDim quantidadeCX AsIntegerDim precoUniProduto AsDoubleDim precoCx AsDoubleDim codigoCliente AsStringDim estoqueProduto AsIntegerDimPrazo1AsIntegerDimPrazo2AsIntegerDimPrazo3AsIntegerDimPrazo4AsIntegerDim data AsDateDim precoTotal AsDouble'Definir una LISTA de ObjetosDetalhesPedidosDimArrDetalhesPedidosAsNewList(OfDetalhesPedidos)
PrivateSub btnSalvar_Click(sender AsObject, e AsEventArgs)Handles btnSalvar.Click'Vamos usar o mapeamento feito pelo LINQ
'para efetivar as atualizações nas bases de dados
Try'A expressão lambda a seguir devolve um objeto Cliente'Estamos usando o codigo do cliente para identificar unicamento o cliente
DimCliAs tblCliente = bd.tblClientes.Single(Function(p) p.IdCliente=Me.txtCodigoCliente.Text)'-------------------------------------------------'Cria um novo objeto Pedido'-------------------------------------------------Dim oPedido AsNew tblPedido
oPedido.Data= txtData.Text
oPedido.IdCliente=Cli.IdCliente
oPedido.tblCliente =Cli
oPedido.NomeCliente=Cli.Cliente
oPedido.NomeProduto= nomeProduto
oPedido.QuantidadeUni= oDetalhesPedidos.QuantidadeUni
oPedido.QuantidadeCX= oDetalhesPedidos.QuantidadeCX
oPedido.PrecoUni= oDetalhesPedidos.PrecoUni
oPedido.PrecoCx= oDetalhesPedidos.PrecoCX
oPedido.Prazo1= oDetalhesPedidos.Prazo1
oPedido.Prazo2= oDetalhesPedidos.Prazo2
oPedido.Prazo3= oDetalhesPedidos.Prazo3
oPedido.Prazo4= oDetalhesPedidos.Prazo4
oPedido.PrecoTotal= oDetalhesPedidos.Subtotal'--------------------------------------------------'Obtendo os detalhes do pedido
'realizo a geração dos objetos Pedido'vou percorrer o array dos detalhes do pedido
'----------------------------------------------------ForEach o AsDetalhesPedidosInArrDetalhesPedidos'Instancio um objeto Produto selecionando pelo codigo do produto
Dim prod As tblProduto = bd.tblProdutos.Single(Function(a) a.IdProduto= o.CodProduto.ToString())'Cria um novo detalhe do pedido
Dim detPedido AsNew tblProduto
detPedido.Produto= prod.Produto
detPedido.IdProduto= prod.IdProduto
detPedido.Quantidade= o.QuantidadeUni'-altera a quantidade de estoque do produto
prod.Estoque= prod.Estoque- o.QuantidadeUniNext'------------------------------------------------------'Aqui atualizo a base de dados
bd.SubmitChanges()MsgBox("Venda registrada com sucesso...")Catch ex AsExceptionMsgBox(ex.Message)Finally'chama as rotinas para limpar clientes e produtos e vendas
limpar_cliente()
limpar_produto()
limpar_venda()Me.calcular_total()EndTryEndSub
Pergunta
João Villar
Não estou conseguindo salvar mais de uma linha do datagrid no banco de dados.
segue imagem a baixo e configuração
imagens anexadas
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.