Master/Detalhe no ASP.NET

21/03/2007

0

Amigos,

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

Marcos.rio

Responder

Posts

12/04/2007

Pedro Carvalho

Primeiro qual o banco de dados que vc está usando...

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...


Responder

17/04/2007

Marcos.rio

Estou usando o SQL SERVER mesmo. Vou tentar e depois posto sobre o resultado


Responder

18/04/2007

Ghostmutante

Eu faço desda forma:

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.


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