none
Erro ao Inserir Registro RRS feed

  • Pergunta

  • Bom dia Amigos estou tentando inserir uma reserva no meu banco (mysql)  

    Só que ta dando um erro  de chave estrangeira  que eu desconheço por isso venho pedir a ajuda de vcs..

    ja tenho um usuario cadastrado e uma sala cadastrada..

    o Usuario seleciona a sala a pariti de um combo q faz um select no banco e retorna o nome das salas..

    Erro e meu banco

    sexta-feira, 2 de agosto de 2013 13:30

Respostas

  •   fb.Open();

                        string aquery = "INSERT INTO reserva( Data, DataFim,HoraInicio, HoraFim) VALUES('" + r.getData() + "','" + r.getdatafim() + "','" + r.getHoraInicio() + "','" + r.getHoratermino() + "')";


                        cmd = new MySqlCommand(aquery, fb);

                                              cmd.ExecuteNonQuery();

                                          fb.Close();

    Ta ae o codigo do insert da reserva o usuario seleciona a sala a partir de um combo

                       
    Amigo você não está passando nenhuma das FK que são Código do Usuário e Código da Sala por isso os erros de FK, sua Primary Key tem uma Sequence criada para gerar automáticamente? Pois como não esta passando provavelmente de erro também.

    Ajudei? Vote! =D


    sexta-feira, 2 de agosto de 2013 14:32

Todas as Respostas

  • Poste o código, se puder, pois ajuda bastante na hora de responder as questões. Um abraço

    Leonardo D'Amato Microsoft .Net Developer

    sexta-feira, 2 de agosto de 2013 13:39
  • Olá estágiario,

    seria interessante você postar o código para analisar-mos, mas a primeiro momento, o item que você esta adicionando que é FK, já está incluido na tabela???

    Julio Arruda

    ________________________________________

    Se foi util, marque como resposta

    sexta-feira, 2 de agosto de 2013 14:05
  • Estagiario, onde você está informando o ID do usuário? Poste o código para analisarmos melhor, mas, pelas imagens o erro é que você não está passando o ID do usuário na tela 'Usuario_codigo' REFERENCES 'codigo'

    Ajudei? Vote! =D

    sexta-feira, 2 de agosto de 2013 14:12
  •   fb.Open();

                        string aquery = "INSERT INTO reserva( Data, DataFim,HoraInicio, HoraFim) VALUES('" + r.getData() + "','" + r.getdatafim() + "','" + r.getHoraInicio() + "','" + r.getHoratermino() + "')";


                        cmd = new MySqlCommand(aquery, fb);

                                              cmd.ExecuteNonQuery();

                                          fb.Close();

    Ta ae o codigo do insert da reserva o usuario seleciona a sala a partir de um combo

                       
    sexta-feira, 2 de agosto de 2013 14:28
  • Creio que eu nao esteja passando a sala corretamente
    sexta-feira, 2 de agosto de 2013 14:29
  •   fb.Open();

                        string aquery = "INSERT INTO reserva( Data, DataFim,HoraInicio, HoraFim) VALUES('" + r.getData() + "','" + r.getdatafim() + "','" + r.getHoraInicio() + "','" + r.getHoratermino() + "')";


                        cmd = new MySqlCommand(aquery, fb);

                                              cmd.ExecuteNonQuery();

                                          fb.Close();

    Ta ae o codigo do insert da reserva o usuario seleciona a sala a partir de um combo

                       
    Amigo você não está passando nenhuma das FK que são Código do Usuário e Código da Sala por isso os erros de FK, sua Primary Key tem uma Sequence criada para gerar automáticamente? Pois como não esta passando provavelmente de erro também.

    Ajudei? Vote! =D


    sexta-feira, 2 de agosto de 2013 14:32
  • Entendi amigo só outra duvida como faço para que quando o usuario selecionar a sala pelo combox,  o txtbox recebe o id da sala ?
    sexta-feira, 2 de agosto de 2013 14:48
  • comboBox.SelectedIndex; 

    lembrando que começa com (0) zero.

    Ajudei? Vote! =D

    sexta-feira, 2 de agosto de 2013 15:11
  • como assim ?  pode explicar melhor?

    não e necessario modificar o meu select no banco:?

    boto o codigo dentro do evento?

    sexta-feira, 2 de agosto de 2013 18:18
  • Boa noite, 

    Referente a sua pergunta:

    Entendi amigo só outra duvida como faço para que quando o usuario selecionar a sala pelo combox,  o txtbox recebe o id da sala ?

    R: Para colocar o valor no TextBox quando o usuário do seu sistema selecionar uma opção:

    1) Dê um click sobre o objeto ComboBox, ao fazer isso será exibido uma lista de propriedades do objeto ComboBox, no topo há o icone de um "raio" click nele;

    2) Procure pela opção "SelectedIndexChanged", ao localiza-la coloque este código exemplo:

    TextBox1.Text = ComboBox1.SelectedIndex.ToString();

    Neste caso toda vez que seu usuário selecionar ele irá capturar o código que representa o texto selecionado.

    Exemplo (Tabela de domínio Sexo)
    1 - Masculino
    2 - Feminino

    Quando o usuário selecionar o texto "Masculino" será capturado o código 1, que no seu caso é o que você precisa.

    Observações finais: Se o seu ComboBox foi preenchido manualmente o valor começara em zero

    Exemplo: 

    ComboxEstadoCivil
    Casado
    Solteiro
    Divorciado
    Viúvo

    Na sequencia o "SelectedIndex" capturado será esse:
    0 = Casado
    1 = Solteiro
    2 = Divorciado
    3 = Viuvo

    Espero que tenha também ajudado em esclarecer sua dúvida.


    segunda-feira, 5 de agosto de 2013 00:18
  • Amigo deu certo muito obrigado :)   só que a o codigo carregado no textbox nao corresponde  respectivamente ao id da sala.. tem sala que esta recebendo ID =0  , sendo que a minha primeira sala no banco esta como id = 1

    Como faça para atribuir os respectivos valores (IDS)  as salas?

    segunda-feira, 5 de agosto de 2013 12:25
  • Bom dia,

    Desculpe na demora em responder.

    No comboBox

    Há uma opção chamada "Use Data Bound Itens", marque esta opção

    Data Source : (Crie um Data source, conexão do banco e a tabela que irá utilizar)
    Display Member : (Coluna NOME que deve ser exibida para o Usuario)
    Value Meber : (Coluna ID da sua tabela que vocer quer receber)

    Coloque no Evento (SelectedIndex) do ComboBox um código ( label1.text = comboBox1.SelectedValue.toString(); ) pra mostrar o ID capturado.

    terça-feira, 6 de agosto de 2013 12:26
  • Bom dia,

    Desculpe na demora em responder.

    No comboBox

    Há uma opção chamada "Use Data Bound Itens", marque esta opção

    Data Source : (Crie um Data source, conexão do banco e a tabela que irá utilizar)
    Display Member : (Coluna NOME que deve ser exibida para o Usuario)
    Value Meber : (Coluna ID da sua tabela que vocer quer receber)

    Coloque no Evento (SelectedIndex) do ComboBox um código ( label1.text = comboBox1.SelectedValue.toString(); ) pra mostrar o ID capturado.

    Amigo vc se refere a opção Databindings?  Pois nao encontrei essa opção >>>  "Use Data Bound Itens " estou ultilizando o visual Sudio 2010 express
    terça-feira, 6 de agosto de 2013 13:11
  • Bom dia,

    Não testei isso na versão Express, o exemplo montei na versão Ultimate.

    Não estou conseguindo inserir aqui o print do exemplo. Mas realizei da seguinte forma:

    - No comboBox quando você da um clique sobre ele há uma seta pequena no canto direito superior.
    - Selecionei o check box "Use Data Bound Items"
    - Na opção Data Source, cliquei em adicionar e fiz uma conexão de teste no banco de dados;
    - Na opção Display Member, indiquei a coluna que vou exibir para o usuario;
    - Na opção Value Member, indiquei a coluna que eu quero, no caso o ID do usuario.

    quarta-feira, 7 de agosto de 2013 22:44