Master/Detalhe no ASP.NET
21/03/2007
0
Estou mais uma vez precisando do ajuda dos colegas. Estou desenvolvendo um WebForm de vendas, onde eu tenho a tabela vendas e a tabela ítemvendas. No formulário eu possuo 3 botões, um para Incluir item de venda, excluir item de venda e editar item de venda, funcionando sob uma grid. No código do botão incluir, coloquei um response.redirect(´itemvendas.aspx?codigovenda=1´... ai começa o meu problema, com a venda ainda não foi finalizada, o usuário não clicou no botão finalizar venda, com isso não tenho como passar o codigo da venda pela URL. O que devo fazer para resolver isso ??
=======================================
Cod_Venda - Int - Identy()
Data_Venda - DateTime
Tenho a tabela ItemVenda
=======================================
Cod_ItemVenda - Int - Identy()
Cod_Venda - Int - [Fk_ItemVenda_Venda]
Cod_produto - Int - {Fk_ItemVenda_Produto]
Quando vou inserir uma nova venda, ainda não tenho o valor do campo cod_venda pois a venda so pode ser finalizada com pelo menos 1 ítem na tabela ItemVenda cadastrado.
Com isso não consigo gravar o Item da Venda sem o código da Venda. Como posso resolver esse problemão??
Marcos.rio
Posts
12/04/2007
Pedro Carvalho
Se vc estiver usuando o SQL Server vc pode gerar uma chave usando o comado SELECT NEWID() AS CHAVE
de posse da chave vc grava os itens da venda em uma tabela Temporária...
quando o usuário finalizar a venda vc ler todos os itens da tabela temporaria e grava a venda e seguida vc grava os itens da venda pela chave...
17/04/2007
Marcos.rio
18/04/2007
Ghostmutante
Toda minha instrução guardo em uma variavel, por exemplo
strSQL = " INSERT INTO tabela (" strSQL &= " campo1," strSQL &= " campo2," strSQL &= " ) VALUES ( " strSQL &= var1 & "," strSQL &= var2 & ", strSQL &= " )"
certo??
bom, para vc retornar o ID que foi adicionado é facilimo, 3 linhas a mais no insert:
strSQL = " SET NOCOUNT ON; "[/b]strSQL &= " INSERT INTO tabela (" strSQL &= " campo1," strSQL &= " campo2," strSQL &= " ) VALUES ( " strSQL &= var1 & "," strSQL &= var2 & ", strSQL &= " );" [b]strSQL &= " SELECT @@IDENTITY AS ID_DA_TABELA; " strSQL &= " SET NOCOUNT OFF; "
Repare que foi adicionada apenas a Primeira, penultima e ultima linha adicionadas...
Manda executar este comando e a variavel strSQL te retornara o ID da linha que foi inserida...
Espero ter ajudado.
Clique aqui para fazer login e interagir na Comunidade :)