Al crear un TableAdapter en una aplicación de ASP.NET 2 usando Visual Web Developer 2005 Express, se establecen algunos límites que no son obvios a primera vista.
En un proyecto en el que trabajo tengo una base de datos en MySQL con un campo llamado Cuerpo
que es de tipo longtext
y está diseñado para que pueda almacenar varios párrafos de HTML
.
Al crear el TableAdapter
y el Business Logic
uno nunca establece los tamaños de los campos, ya que la herramienta lo hace por uno mismo.
En mi caso, al insertar un registro mediante mi aplicación, el campo Cuerpo
se truncaba, almacenando únicamente alrededor de 1000 o 1024 caracteres.
Mi primera idea fue ir a revisar mi tabla de MySQL, pero el límite no estaba ahí. En seguida fui a ver las propiedades de la tabla en el TableAdapter
de mi aplicación:
Como puedes ver, el MaxLength
del campo en cuestión estaba establecido en 60,000, así que tampoco estaba ahí el problema. Después de un rato de darle vueltas al asunto, se me ocurrió ver las propiedades de la sentencia que hacía el insert
en la base de datos, la cual en mi ejemplo se llama InsertaEnvio
. Solamente hay que seleccionarla y oprimir el pequeño botón con tres puntos:
Se mostrará la ventana de propiedades de la sentencia SQL. Seleccioné el campo problemático, y noté que en la propiedad Size
tenía un valor de 1024:
Listo, ahí estaba el error, solamente lo modifiqué a un valor lo suficientemente grande:
Salve el archivo xsd
, probé nuevamente, y el problema desapareció.