SQL Server - Añadir campo Tabla de Base de Datos SQL Server CE

 
Vista:

Añadir campo Tabla de Base de Datos SQL Server CE

Publicado por CrepuX (1 intervención) el 27/06/2012 13:22:03
Hola a todos/as

Tengo un problema con una Base de Datos SQL Server CE a ver si me podeis ayudar: Tengo una aplicación móvil con una Base de Datos SQL Server CE y cuando le añado un campo a una de las tablas y relleno el registro "a mano", el dato del campo nuevo no me lo coge y la aplicación da un error y dice que el valor del campo es DBNULL. Los demás me los muestra perfectamente. Tengo el campo nuevo en el xsd y desde la aplicación lo reconoce, ya que me lo saca con el intellisense. Me pasó anteriormente y lo solucioné copiandome los registros, borrando la tabla, creándola de nuevo y rellenandola a mano. El problema es que esta tabla contiene 470 registros y hacer lo que hice la vez anterior para solucionarlo, lo veo complicado.

El nuevo campo que añado es del tipo datetime. He probado a introducir el dato en la BD como dd/MM/yyyy hh:mm:ss y como yyyyMMdd hh:mm:ss. En esta útima forma, que es como supuestamente se guarda en la BD, me dice que el formato no es correcto. Si lo guardo de la primera, la Base de Datos coge el dato sin problemas, pero la aplicación me da un error diciendome que el campo es DBNULL. En la aplicación, para traerme el dato, lo declaro como DateTime.

El código que uso es el siguiente:

DateTime hoy = DateTime.Now;
DateTime fechaUltima = LecturaActiva.FechaUltimaLectura; <------ Aquí me salta el error y me dice que es DBNULL
TimeSpan ts = hoy - fechaUltima;
int diferencia = ts.Days;

En la Base de Datos lo tengo de la siguiente manera:

COLUMN NAME DATA TYPE LENGHT ALLOW NULLS UNIQUE PRIMARY KEY

FechaUltimaLectura datetime 8 Yes No No

He comprobado también que el registro que miro es el correcto, por si acaso, ya que los demás registros tienen ese campo NULL, pero el registro es el que tiene la fecha introducida con un valor.
Hay alguna manera de sacar un script para la inserción de los datos y después borrar la tabla y crearla de nuevo??

Alguna otra idea de cómo solucionarlo??


Un saludo y muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Añadir campo Tabla de Base de Datos SQL Server CE

Publicado por Isaias (4558 intervenciones) el 27/06/2012 20:18:12
Todos los campos nuevos asignados a una tabla, por defecto obtienen el valor NULL, a menos, claro esta, que uno lo indique por un DEFAULT.

Si deses resolver su problema, debera "rellenar" su nuevo campo con algun dato "dummy", por ejemplo: '19000101'

O bien, antes de obtener el dato en un SELECT, preguntar con la funcion ISNULL y cambiar su estado

SELECT ISNULL(mycampo, 0) FROM mytabla --- En caso de que mycampo = Null, cambialo por 0

Todas las fechas se guardan de forma ENTERA (INT), se recomienda que el manejo de fechas es haga en formato ANSI (yyyymmdd).

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar