none
Tomar en cuenta ceros en SQL Server RRS feed

  • Pregunta

  • Buenos días, estoy realizando una aplicación en ASP.NET en donde si ingreso un número 000001 solo me toma en cuenta el uno, como puedo hacer para que el registro se llene tomando en cuenta los ceros en SQL Server

    De antemano MUCHAS GRACIAS

    SALUDOS

    miércoles, 20 de abril de 2016 15:14

Respuestas

  • No, no al parametro le defines solo un valor numerico, y si va a guardar solo el 1, en tu codigo solo usas

    cmd.Parameters.Add("@No_Tarjeta", SqlDbType.Int).Value = Convert.ToInt64(txtTarjeta.Text)

    No recomiendo que guardes los ceros en la db, es una pesima idea

    los ceros solo lo muestras cuando muestras el valor al usuario, por eso mencione el string.format() cuyo resultado se asigna a un textbox

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 21 de abril de 2016 1:21

Todas las respuestas

  • Para que desde un formulario en asp.net se pueda guardar los ceros, el tipo de dato de tu campo donde vas a guardar los numeros debe ser varchar o nvarchar , porque si es int , solo te va guardar el numero mas no los ceros.

    Tipo de datos nvarchar

    Consulta este link te puede ayudar mucho.
    • Editado fredsale miércoles, 20 de abril de 2016 15:19
    miércoles, 20 de abril de 2016 15:18
  • >>como puedo hacer para que el registro se llene tomando en cuenta los ceros en SQL Server

    no, no tomes ese camino es una pesima idea, registra solo el numero, depsues cuando quieras mostrarlo al usuario aplicar el formato con los ceros delante

    usarias algo como ser

    txtNro.Text = string.Format("{0:000000}", 1);


    asi de facil, por supuesto donde puse uno deberias asignar el valor que recuperas de la db como numerico

    pero no definas un campo como varchar si el valor va a ser un numero

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    miércoles, 20 de abril de 2016 15:25
  • Lo definí de la siguiente manera Leandro pero aun me guarda el numero que ingreso, sin el formato de la cadena
    cmd.Parameters.Add("@No_Tarjeta", SqlDbType.Int).Value = Convert.ToInt64(String.Format("{0:00000}", txtTarjeta.Text))


    • Editado Gspindola miércoles, 20 de abril de 2016 16:01 Mas información
    miércoles, 20 de abril de 2016 15:57
  • Lo intente de esa manera pero no funciono
    miércoles, 20 de abril de 2016 18:28
  • No, no al parametro le defines solo un valor numerico, y si va a guardar solo el 1, en tu codigo solo usas

    cmd.Parameters.Add("@No_Tarjeta", SqlDbType.Int).Value = Convert.ToInt64(txtTarjeta.Text)

    No recomiendo que guardes los ceros en la db, es una pesima idea

    los ceros solo lo muestras cuando muestras el valor al usuario, por eso mencione el string.format() cuyo resultado se asigna a un textbox

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 21 de abril de 2016 1:21