none
Sql me devuelve datos con caracteres que no se ven. RRS feed

  • Pregunta

  • Que tal gente, soy muy nuevo en estos foros, pero tengo un pequeño problema. 

    Hago registros via ASP.NET, en texbox y listbox. Pero resulta que cuando una vez registrados quiero consultarlos y llenar textbox o listbox con ellos, me los devuelve con las extension con la que se guardaro. O sea, un ejemplo: 

    telefono varchar (20) pues entonces cuando lo imprime en el texbox mediante un procedimiento almacenado me lo devuleve con 20 caracteres aunque el dato en si solo tenga 10, los otros diez son espacios en blanco. Lo se porque cuando doy clic en el texbox el puntero de posiciona en el lugar 20, lo he contado. Se puede hacer algo?

    GRACIAS (:  

    domingo, 12 de junio de 2016 2:45

Respuestas

  • Seguramente lo que ocurre es que has usado un char(20) en lugar de varchar(20), ya sea en la propia tabla o en alguno de los parámetros del procedimiento almacenado que accede a la tabla. El char hace precisamente lo que estás viendo, es decir, guarda siempre 20 caracteres y si le entregas menos de 20 el resto lo rellena con espacios.

    Si no puedes cambiar la tabla o el procedimiento, y necesitas quitar los espacios desde el lado cliente, puedes simplemente llamar al método Trim sobre el string que obtienes desde la base de datos.

    domingo, 12 de junio de 2016 5:25
  • Para que no te siga pasando es mejor que siga lo que te propone nuestro amigo Alberto y en las propiedades del Textbox colocarle la longitud que deseas para dicho Campo.
    lunes, 13 de junio de 2016 0:00

Todas las respuestas

  • Seguramente lo que ocurre es que has usado un char(20) en lugar de varchar(20), ya sea en la propia tabla o en alguno de los parámetros del procedimiento almacenado que accede a la tabla. El char hace precisamente lo que estás viendo, es decir, guarda siempre 20 caracteres y si le entregas menos de 20 el resto lo rellena con espacios.

    Si no puedes cambiar la tabla o el procedimiento, y necesitas quitar los espacios desde el lado cliente, puedes simplemente llamar al método Trim sobre el string que obtienes desde la base de datos.

    domingo, 12 de junio de 2016 5:25
  • Para que no te siga pasando es mejor que siga lo que te propone nuestro amigo Alberto y en las propiedades del Textbox colocarle la longitud que deseas para dicho Campo.
    lunes, 13 de junio de 2016 0:00