none
Criar relacionamento entre duas tabelas Access RRS feed

  • Pergunta

  • Amigos, como ainda nao aprendi como trabalhar com SQL Server, estou usando acess para aprender pelo menos a codificação C#. E estou com um problema simples.

    Possuo um formulario para cadastro de compras, em que ao cadastrar os dados, eles serao divididos em duas tabelas, uma chamada Compras e outra CompraParcela.

    O problema é que em CompraParcela possui uma FK que por sua vez é a PK de Compras, mas nao estou conseguindo entender porque nao esta vindo a PK de Compras, inves da PK vem uma mensagem dizendo: Dados Binarios Longos.

    Alguma dica?

    Grato.


    "Quando se faz o que se gosta, o sucesso é inevitável" -- Jean Ricardo da Costa -- Analista de Sistemas
    terça-feira, 23 de novembro de 2010 20:53

Respostas

  • Andre, obrigado pela força, mas acabei descobrindo aqui o que faltava, tive que fazer um metodo para pegar o ultimo codigo inserido na tabela, e posteriomente inseri-lo na segunda tabela como chave estrangeira. esse procedimento acontece a cada inserção feita pelo usuario.

     

    Método:

     public static int ObterUltimoId()
          {
            con = new OleDbConnection(provedor);
            con.Open();
    
            cmd = new OleDbCommand("SELECT TOP 1 (cod_produto) FROM Compras ORDER BY cod_produto DESC", con);
            int cod = Convert.ToInt32(cmd.ExecuteScalar());
            return cod;
          }
    

    codigo do formulario que recebe o metodo:

    if (Banco.adcCompras(c))
                  {
                    cp.CodigoProduto = Banco.ObterUltimoId();//usei o metodo aqui
                    cp.Parcelas = Convert.ToInt32(cbQtd.SelectedItem);
                    cp.DataPagamento = dateTimePicker1.Value.Date.ToShortDateString();
                    cp.Valor = Convert.ToDouble(txtValor.Text);
    
                    if (Banco.adcCompraParcela(cp))
                    {
                      MessageBox.Show("Compra inserida com sucesso!", "Cadastro Compras",
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                  }
                  else
                  {
                    MessageBox.Show("FORM - Erro ao inserir compras", "Cadastro Compras",
                      MessageBoxButtons.OK, MessageBoxIcon.Error);
                  }
    
    Grato.


    "Quando se faz o que se gosta, o sucesso é inevitável" -- Jean Ricardo da Costa -- Analista de Sistemas
    quarta-feira, 24 de novembro de 2010 17:16

Todas as Respostas

  • Jean,

    Você poderia detalhar como você está fazendo o acesso a dados nessa sua aplicação? Como você construiu esse form?


    André Alves de Lima
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    quarta-feira, 24 de novembro de 2010 11:08
    Moderador
  • Andre, obrigado pela força, mas acabei descobrindo aqui o que faltava, tive que fazer um metodo para pegar o ultimo codigo inserido na tabela, e posteriomente inseri-lo na segunda tabela como chave estrangeira. esse procedimento acontece a cada inserção feita pelo usuario.

     

    Método:

     public static int ObterUltimoId()
          {
            con = new OleDbConnection(provedor);
            con.Open();
    
            cmd = new OleDbCommand("SELECT TOP 1 (cod_produto) FROM Compras ORDER BY cod_produto DESC", con);
            int cod = Convert.ToInt32(cmd.ExecuteScalar());
            return cod;
          }
    

    codigo do formulario que recebe o metodo:

    if (Banco.adcCompras(c))
                  {
                    cp.CodigoProduto = Banco.ObterUltimoId();//usei o metodo aqui
                    cp.Parcelas = Convert.ToInt32(cbQtd.SelectedItem);
                    cp.DataPagamento = dateTimePicker1.Value.Date.ToShortDateString();
                    cp.Valor = Convert.ToDouble(txtValor.Text);
    
                    if (Banco.adcCompraParcela(cp))
                    {
                      MessageBox.Show("Compra inserida com sucesso!", "Cadastro Compras",
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                  }
                  else
                  {
                    MessageBox.Show("FORM - Erro ao inserir compras", "Cadastro Compras",
                      MessageBoxButtons.OK, MessageBoxIcon.Error);
                  }
    
    Grato.


    "Quando se faz o que se gosta, o sucesso é inevitável" -- Jean Ricardo da Costa -- Analista de Sistemas
    quarta-feira, 24 de novembro de 2010 17:16