none
Dúvidas SQL Server RRS feed

  • Pergunta

  • Olá gostaria de saber se alguém pode me ajudar pois estou com uma dificuldade em criar uma tabela no sql server e colocar o código da tabela identity e com zeros a esquerda, para que a cada registro gerado o código possa ser gerado incremental e com zeros a esquerda ou seja quando gerar mais um registro na aplicação aparecer para o usuário exemplo.

    Código 00001
    Nome teste01 

    Código 00002
    Nome teste02

    Código 00003
    Nome teste03
    terça-feira, 21 de abril de 2015 15:51

Respostas

  • Falha minha.. esqueci que a propriedade Value é do tipo object, e portanto nao implementa o IFormatable...

    O correto é:

     codigoLabel.Text = ((int)novoCodigo.Value).ToString("000000");

    ou seja, voc primeiro tem que forçar o novoCodigo.Value (que é do tipo object, portanto indefinido) a assumir o tipo int.. neste caso o metodo ToString passa a ter mais parametros.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    terça-feira, 21 de abril de 2015 20:07

Todas as Respostas

  • Para isso voc vai ter que controlar manualmente (o indentity é para campos numericos) porque seu campo tem que ser varchar (ou char) para que ele armazene os zeros.

    Questao: voce precisa armazenar os zeros? Voce nao pode simplesmente formata-los na hora de exibir?

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    terça-feira, 21 de abril de 2015 17:48
  • Obrigado Willian pela atenção, não precisa armazenar os zeros a esquerda o importante é aparecer formatado com os zeros a esquerda na aplicação, sempre que tiver um novo registro, agora pode armazenar sem os zeros.


    terça-feira, 21 de abril de 2015 19:06
  • Entao sua duvida é em relaçao à interface e nao ao banco de dados.. Qual é a tecnologia(web/windows) e linguagem(c#/vb.net, etc..) da sua aplicaçao?

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    terça-feira, 21 de abril de 2015 19:21
  • windows desktop C# é que sou iniciante na área rsrs..
    terça-feira, 21 de abril de 2015 19:34
  • Digamos que vc use um textbox para exibir o codigo, entao para formatar voc faz:

    codigo.Text=row["ID"].ToString("000000");

    Independente da tecnologia que vc use para acessar os dados, sempre vai ter um jeito de formatar... Poste parte do seu codigo aqui para que possamos te ajudar mais.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    terça-feira, 21 de abril de 2015 19:38
  • Esta formatação seria no campo codigoLabel entendeu!

    private void AdicionarButton_Click(object sender, EventArgs e)
            {
                SqlConnection cn = new SqlConnection(Dados.conString());
                SqlCommand cmd = new SqlCommand("pAluno_INS", cn);
                cmd.CommandType = CommandType.StoredProcedure;

                try
                {
                    cmd.Parameters.AddWithValue("@NOME", txtNome.Text);
                    cmd.Parameters.AddWithValue("@IDADE", txtIdade.Text);
                    cmd.Parameters.AddWithValue("@ENDERECO", txtEndereco.Text);
                    cmd.Parameters.AddWithValue("@EMAIL", txtEmail.Text);
                    cmd.Parameters.AddWithValue("@CIDADE", cmbCidade.Text);
                    cmd.Parameters.AddWithValue("@UF", cmbUf.Text);
                    cmd.Parameters.AddWithValue("@NOME_PAI", txtNomePai.Text);
                    cmd.Parameters.AddWithValue("@NOME_MAE", txtNomeMae.Text);

                    SqlParameter novoCodigo = cmd.Parameters.AddWithValue("@ID_ALUNO", SqlDbType.Int);
                    novoCodigo.Direction = ParameterDirection.Output;

                    cn.Open();
                    cmd.ExecuteNonQuery();

                    codigoLabel.Text = novoCodigo.Value.ToString();

                    MessageBox.Show("Cadastrado com sucesso! ", "EDS Info", MessageBoxButtons.OK
                        ,MessageBoxIcon.Information);
                }

    terça-feira, 21 de abril de 2015 19:46
  • Entao...

        codigoLabel.Text = novoCodigo.Value.ToString("000000");
    

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    terça-feira, 21 de abril de 2015 19:50
  • Error 1 No overload for method 'ToString' takes 1 arguments C:\Users\Eduardo\Documents\Sistema CRUD Alunos\SistemaCrudAlunos\SistemaCrudAlunos\Form1.cs 65 36 SistemaCrudAlunos

    Deu esse erro!

    terça-feira, 21 de abril de 2015 19:58
  • Falha minha.. esqueci que a propriedade Value é do tipo object, e portanto nao implementa o IFormatable...

    O correto é:

     codigoLabel.Text = ((int)novoCodigo.Value).ToString("000000");

    ou seja, voc primeiro tem que forçar o novoCodigo.Value (que é do tipo object, portanto indefinido) a assumir o tipo int.. neste caso o metodo ToString passa a ter mais parametros.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    terça-feira, 21 de abril de 2015 20:07
  • Deu certo Willian, muito obrigado me ajudou muito não sabia que tinha que forçar o .Value mais uma informação pra minha bagagem rsrs vou utilizar essa técnica, obrigado!!!
    terça-feira, 21 de abril de 2015 20:22