Jump to content
Fórum Script Brasil

jessf

Membros
  • Posts

    4
  • Joined

  • Last visited

Posts posted by jessf

  1. Oi gente, 

    Eu faço uma select no meu banco e ele traz os valores no datagrid. Porém quando vou tentar adicionar/deletar linhas, dá erro:

    "Não é possível adicionar linhas programaticamente à coleção de linhas de DataGridView quando o controle é associado a dados."

    Código do Select:

    DataSet ds = new DataSet();
    string comando = "SELECT * FROM item_orcamento where id_orcamento = '"+ Convert.ToInt32(txtidos.Text) + "' and tipo_item='Produto' order by id_orcamento";
    MySqlDataAdapter da = new MySqlDataAdapter(comando, stringCon);
    MySqlCommandBuilder cmdb = new MySqlCommandBuilder(da);
    da.Fill(ds, "item_orcamento");
    dataGridProdutos.DataSource = ds.Tables["item_orcamento"];
    da.Dispose();

    Código do botão Inserir:

    private void addDataServicos(string codServico, string nomeServico, string qtdServico, string valorServico, string valorTotalServico)
    {
        String[] row = { codServico, nomeServico, qtdServico, valorServico, valorTotalServico };
        dataGridServicos.Rows.Add(row);
    }

    Como posso inserir novas linhas?

    Obrigada!

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

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

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

×
×
  • Create New...