2011-09-08 8 views
5

Tengo una forma extensa de insertar en una base de datos SQL y luego de una página de administración solicito todos los datos y los vuelvo a insertar en el formulario en la página de administración. Durante la inserción original en la base de datos, esta lista desplegable específica (al igual que las demás) está insertando los datos seleccionados. Pero cuando voy a la base de datos, solo esta celda en particular obtiene de 3 a 4 espacios en blanco vacíos después de que se inserta el valor seleccionado. Esto está ocasionando que la comparación booleana responda con falso al intentar insertar de nuevo en el formulario del administrador. es decir ("Primario" == "Primario") = falso. Entonces, la lista desplegable no se actualiza.¿Por qué mi valor de cadena acumula espacios vacíos cuando se inserta en una base de datos SQL?

¿Qué estaría haciendo que la fila de SQL agregue estos espacios vacíos? El código es idéntico para todas las listas desplegables HTML con su código detrás. Y la estructura de la base de datos SQL parece idéntica en todos los sentidos también.

p.s. Para deshacer el problema, estoy tratando de usar .Trim() en el código detrás. Pero esto no está haciendo una diferencia. Parece que la base de datos SQL agrega el espacio en blanco en la inserción.

+0

¿cuál es el código? ¿Cuál es el tipo de la columna? ¿Cuál es el SQL? –

+0

"Parece que la base de datos SQL agrega el espacio en blanco en la inserción". Pruebe eso ejecutando el SQL correcto directamente a través de su interfaz dbms en lugar de pasar la consulta a través del código. –

+0

** ¿QUÉ ** base de datos y qué versión? ** SQL ** es solo el lenguaje de consulta estructurado - un lenguaje utilizado por ** muchos ** sistemas de bases de datos - ** SQL ** es ** NO ** un producto de base de datos ... cosas como esta a menudo ** proveedor -específico ** - así que realmente necesitamos saber qué ** sistema de base de datos ** está usando ... –

Respuesta

26

¿Su columna agrega espacio en blanco es CHAR o NCHAR en lugar de VARCHAR o NVARCHAR? Por ejemplo, si el tipo de datos de sus columnas es CHAR(10) e inserta un "Hola" en él, siempre habrá 10 caracteres en esa columna, por lo que se agregarán 5 espacios en blanco después de "Hola". Sin embargo, si usa VARCHAR(10), esto no sucederá.

+2

O 'NCHAR' en lugar de' NVARCHAR'. – Oded

+0

Ah, sí se me olvidó agregar esos. Actualicé mi respuesta. – smoak

+0

Umm, @smoak eso es lo interesante. Todo se hace como varchar (50) .. Noté que hice al menos uno como varchar (100). Entonces ninguno de ellos debería agregar los caracteres extra ... Pero ya sabes, eso es gracioso. Porque está agregando caracteres hasta 10. Si se selecciona "Primario", se inserta como "Primario" (con 3 espacios vacíos) si se selecciona "Cónyuge", agrega 4 espacios vacíos ... todo lo que se suma a 10. Me pregunto si en alguna parte del camino lo tenía como char y ahora la base de datos simplemente no se está actualizando correctamente. – iDevJunkie

Cuestiones relacionadas