Ir para conteúdo
Fórum Script Brasil
  • 0

Inserir linhas de datagridview em Mysql


jessf

Pergunta

Oi gente, sou nova aqui e programando também. 

Tenho uma dúvida envolvendo MySql e C#:

Estou tentando salvar os itens (produtos) de um orçamento no banco de dados. Pelo que pesquisei, tenho que criar duas tabelas, uma pai e outra filha. As minhas  são Orcamento e Item_Orcamento. Na Orcamento tenho a chave do Item_Orcamento (id_item_orcamento) e na Item_Orcamento tenho a chave do Orcamento (id_orcamento). 

Minha dúvida é referente a como ler todas as linhas do datagridview(os produtos/valores do orçamento) e salvar no banco de dados(todos em um só registro). 

Alguém me ajuda please? Sempre acho as informações por partes e estou ficando cada vez mais confusa.

Obrigada!!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Salvar em um só registro?

Se você modelou corretamente a tabela de orcamento receberá os dados gerais e a de item_orcamento receberá um registro para cada item daquele orçamento.

A gravação pode ocorrer de uma única vez, através de uma storage procedure com controle de sucesso ou fracasso de gravação.

Passe o modelo de dados para o forum de MySQL e veremos o que pode ser feito.

Depois, você poderá retornar a este forum para saber como integrar a linguagem de programação com o banco.

Link para o comentário
Compartilhar em outros sites

  • 0
1 hora atrás, Denis Courcy disse:

Salvar em um só registro?

Se você modelou corretamente a tabela de orcamento receberá os dados gerais e a de item_orcamento receberá um registro para cada item daquele orçamento.

A gravação pode ocorrer de uma única vez, através de uma storage procedure com controle de sucesso ou fracasso de gravação.

Passe o modelo de dados para o forum de MySQL e veremos o que pode ser feito.

Depois, você poderá retornar a este forum para saber como integrar a linguagem de programação com o banco.

Mas aí no caso o campo id_item_orcamento (da tabela Item_Orcamento) teria vários valores no mesmo campo na tabela Orcamento? Tem como isso? Vou postar o código mais tarde, mas basicamente são dois inserts, primeiro na tabela pai, depois na filho, e o último campo pega o id da primeira.

Link para o comentário
Compartilhar em outros sites

  • 0

O código do meu banco:

CREATE TABLE Orcamento (
  id_orcamento INTEGER NOT NULL AUTO_INCREMENT,
  tipo_orcamento CHAR(20) NOT NULL,
  id_cliente INTEGER NOT NULL,
  id_veiculo INTEGER NOT NULL,
  id_item_orc INTEGER NOT NULL,
  data_abertura  CHAR(10) NULL, 
  valor_total CHAR(10) NOT NULL, 
  status  CHAR(11) NOT NULL,
  obs  CHAR(40) NOT NULL,
  PRIMARY KEY(id_orcamento)
);

ALTER TABLE 'Orcamento' ADD CONSTRAINT 'fk_id_cliente' FOREIGN KEY ( 'id_cliente' ) REFERENCES 'Cad_cliente' ( 'id_cliente' ) ;
ALTER TABLE 'Orcamento' ADD CONSTRAINT 'fk_id_veiculo' FOREIGN KEY ( 'id_veiculo' ) REFERENCES 'Cad_Veiculo' ( 'id_veiculo' ) ;
ALTER TABLE 'Orcamento' ADD CONSTRAINT 'fk_id_item_orc' FOREIGN KEY ( 'id_item_orc' ) REFERENCES 'Item_Orcamento' ( 'id_item_orc' ) ;

 

CREATE TABLE Item_Orcamento (
  id_item_orc INTEGER NOT NULL AUTO_INCREMENT,
  id_servico INTEGER NULL,
  valor_servico CHAR(10) NULL, 
  quantidade_serv INTEGER NULL, 
  id_produto INTEGER NULL,
  valor_produto  CHAR(10) NULL,
  quantidade_prod INTEGER NULL,
  valor_total CHAR(10) NULL,
  id_orcamento INTEGER NULL,
  PRIMARY KEY(id_item_orc)
);
ALTER TABLE 'Item_Orcamento' ADD CONSTRAINT 'fk_id_servico' FOREIGN KEY ( 'id_servico' ) REFERENCES 'Cad_Servico' ( 'id_servico' ) ;
ALTER TABLE 'Item_Orcamento' ADD CONSTRAINT 'fk_id_produto' FOREIGN KEY ( 'id_produto' ) REFERENCES 'Cad_Produto' ( 'id_produto' ) ;
ALTER TABLE 'Item_Orcamento' ADD CONSTRAINT 'fk_id_orcamento' FOREIGN KEY ( 'id_orcamento' ) REFERENCES 'Orcamento' ( 'id_orcamento' ) ;

O insert:

SET AUTOCOMMIT=0;
START TRANSACTION;
INSERT INTO Orcamento(id_orcamento, tipo_orcamento, id_cliente, id_veiculo,
id_item_orc, data_abertura, valor_total, status, obs)
VALUES(,,,);
INSERT INTO Item_Orcamento(id_item_orc, id_servico, valor_servico,
quantidade_serv, id_produto, valor_produto, quantidade_prod, valor_total)
values(,,, (select LAST_INSERT_ID()));
COMMIT;
SET AUTOCOMMIT=1;

 

Os valores de ambos vou pegar das textbox das telas.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...