Pregunta

Me estoy ensuciando en WinForms y descubrí, a través de un encantador tutorial, la magia de arrastrar una tabla de base de datos a la vista de diseño de mi formulario principal.Entonces, todo es maravilloso, tengo mi DataGridView con todas las columnas representadas maravillosamente.

PERO...

Cuando ejecuto mi aplicación en este .sdf nuevo y vacío (guardado vacío para las dos tablas que he creado, que a su vez están vacías), obtengo un -1 en la columna correspondiente a mi columna de clave principal/identidad cada vez que lo intento. para crear ese primer registro.

¿Alguna idea de por qué esto podría estar sucediendo?Si ayuda, la columna es una int.

¿Fue útil?

Solución

Dado que es una columna de Identidad y aún no la ha guardado en la base de datos, es -1.Supongo que esto es antes de guardar la tabla en la base de datos, ¿correcto?Debe realizar la inserción antes de que ese valor se establezca correctamente.

Otros consejos

@Brian -1 es una buena opción para el valor predeterminado ya que es probable que ninguna fila "real" tenga identidades menores que cero.Si su valor predeterminado es 0 o 1, entonces habría una posibilidad de que entrara en conflicto con una fila existente, causando una violación de la clave principal.

Para las aplicaciones que permanecen fuera de línea y crean varias filas antes de guardarlas, una práctica común es continuar contando hacia atrás (-2, -3, -4) para la identidad de cada nueva fila.Luego, cuando se guardan, el servidor puede reemplazarlos con el verdadero valor "siguiente" de la tabla.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top