none
Enum RRS feed

  • Pergunta

  • Bom dia como faço para fazer um insert no meu projeto cuja atributo é um enum sexo{Masculino,Feminino}

    e mandar para o banco de dados 

    Obrigado Luiz Paulo

    quinta-feira, 16 de março de 2017 13:38

Respostas

  • Olá, Luiz.

    O valores do enum são inteiros (int). Por padrão (se você não setar um valor) a primeiro posição inicia com valor 0, 1 para segunda, 2 para terceira e assim sucessivamente.

    É isso?



    quinta-feira, 16 de março de 2017 14:51
  • Complementando a resposta do Artur, você pode definir valores e tipos conforme o exemplo abaixo:

     public enum Sexo
        {
            Feminino = 1,
            Masculino = 2,
        }

        public enum Sexo : byte
        {
            Feminino = 0,
            Masculino = 1,
        }

        public enum Sexo : long 
        {
            Feminino = 5000,
            Masculino = 10000,
        }
    quinta-feira, 16 de março de 2017 14:56
  • Luiz, se na tabela o campo sexo for inteiro faça assim:

    string sqlInsert;
    sqlInsert = "INSERT INTO teste (nome,sexo,endereco,cpf) VALUES"
          + " ('" + this.nome + "','" + (int)Sexo.Masculino + "','" + this.endereco + "','" + this.cpf + "')";

    Caso seja texto:

    string sqlInsert;
    sqlInsert = "INSERT INTO teste (nome,sexo,endereco,cpf) VALUES"
          + " ('" + this.nome + "','" + Sexo.Masculino + "','" + this.endereco + "','" + this.cpf + "')";

    Ou

    string sqlInsert;
    sqlInsert = "INSERT INTO teste (nome,sexo,endereco,cpf) VALUES"
          + " ('" + this.nome + "','" + Enum.GetName(typeof(Sexo), (int)Sexo.Masculino) + "','" + this.endereco + "','" + this.cpf + "')";

    Se achou este post útil, por favor clique em "Votar como útil". Se respondeu sua dúvida, lembre de "Marcar como Resposta".


    quinta-feira, 16 de março de 2017 18:43
  • Sim.

    Se achou este post útil, por favor clique em "Votar como útil". Se respondeu sua dúvida, lembre de "Marcar como Resposta".

    quinta-feira, 16 de março de 2017 20:31

Todas as Respostas

  • Olá, Luiz.

    O valores do enum são inteiros (int). Por padrão (se você não setar um valor) a primeiro posição inicia com valor 0, 1 para segunda, 2 para terceira e assim sucessivamente.

    É isso?



    quinta-feira, 16 de março de 2017 14:51
  • Complementando a resposta do Artur, você pode definir valores e tipos conforme o exemplo abaixo:

     public enum Sexo
        {
            Feminino = 1,
            Masculino = 2,
        }

        public enum Sexo : byte
        {
            Feminino = 0,
            Masculino = 1,
        }

        public enum Sexo : long 
        {
            Feminino = 5000,
            Masculino = 10000,
        }
    quinta-feira, 16 de março de 2017 14:56
  • Tudo bem só que o meu problema é que eu tenho no meu projeto um método inserir cliente ,alterar e deletar e como eu encaixo dentro da query ?
    quinta-feira, 16 de março de 2017 15:51
  • Luiz, pode fazer um cast do enum para obter o valor. Por exemplo: (int)Sexo.Masculino

    Se não for isso, poste a query que você está fazendo.

    quinta-feira, 16 de março de 2017 16:48
  • string sqlInsert;
                sqlInsert = "INSERT INTO teste (nome,sexo,endereco,cpf) VALUES"
          + " ('" + this.nome + "','" + Sexo.valueOf("Masculino")+ "','" + this.endereco + "','" + this.cpf + "')";

    a dúvida é como colocar o enum sexo nessa query para  o método inserir funcione 


    quinta-feira, 16 de março de 2017 18:28
  • Luiz, se na tabela o campo sexo for inteiro faça assim:

    string sqlInsert;
    sqlInsert = "INSERT INTO teste (nome,sexo,endereco,cpf) VALUES"
          + " ('" + this.nome + "','" + (int)Sexo.Masculino + "','" + this.endereco + "','" + this.cpf + "')";

    Caso seja texto:

    string sqlInsert;
    sqlInsert = "INSERT INTO teste (nome,sexo,endereco,cpf) VALUES"
          + " ('" + this.nome + "','" + Sexo.Masculino + "','" + this.endereco + "','" + this.cpf + "')";

    Ou

    string sqlInsert;
    sqlInsert = "INSERT INTO teste (nome,sexo,endereco,cpf) VALUES"
          + " ('" + this.nome + "','" + Enum.GetName(typeof(Sexo), (int)Sexo.Masculino) + "','" + this.endereco + "','" + this.cpf + "')";

    Se achou este post útil, por favor clique em "Votar como útil". Se respondeu sua dúvida, lembre de "Marcar como Resposta".


    quinta-feira, 16 de março de 2017 18:43
  • Deu certo Artur mas ele só manda p banco como masculino ?

    Eu fiz essa forma 

    string sqlInsert;
    sqlInsert = "INSERT INTO teste (nome,sexo,endereco,cpf) VALUES"
          + " ('" + this.nome + "','" + Sexo.Masculino + "','" + this.endereco + "','" + this.cpf + "')";



    quinta-feira, 16 de março de 2017 19:28
  • Não, Luiz.

    Usei o enum Sexo.Masculino como exemplo. No lugar você vai passar o enum que é necessário ou que o cliente selecionou por exemplo.

    Se tiver mais duvidas, só madar.

    Se achou este post útil, por favor clique em "Votar como útil". Se respondeu sua dúvida, lembre de "Marcar como Resposta".

    quinta-feira, 16 de março de 2017 20:02
  • Não entendi
    quinta-feira, 16 de março de 2017 20:10
  • string sqlInsert;
    sqlInsert = "INSERT INTO teste (nome,sexo,endereco,cpf) VALUES"
          + " ('" + this.nome + "','" + [VALOR DO ENUM QUE VC ESCOLHER] + "','" + this.endereco + "','" + this.cpf + "')";

    Se achou este post útil, por favor clique em "Votar como útil". Se respondeu sua dúvida, lembre de "Marcar como Resposta".

    quinta-feira, 16 de março de 2017 20:23
  • sexo entao ?
    quinta-feira, 16 de março de 2017 20:25
  • Sim.

    Se achou este post útil, por favor clique em "Votar como útil". Se respondeu sua dúvida, lembre de "Marcar como Resposta".

    quinta-feira, 16 de março de 2017 20:31