Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Error al insertar fecha en Sql Server 2005

Estas en el tema de Error al insertar fecha en Sql Server 2005 en el foro de Visual Basic clásico en Foros del Web. Buenas, trabajo con Visual Studio 2005 y una base de datos en Sql Server 2005 Express. Tengo una tabla con un campo llamado "FECHA" y ...
  #1 (permalink)  
Antiguo 11/10/2008, 09:24
 
Fecha de Ingreso: marzo-2008
Mensajes: 127
Antigüedad: 16 años, 1 mes
Puntos: 1
Error al insertar fecha en Sql Server 2005

Buenas, trabajo con Visual Studio 2005 y una base de datos en Sql Server 2005 Express.
Tengo una tabla con un campo llamado "FECHA" y que forma parte de una clave primaria, lo digo por si pudieran ir por ahi los tiros.
Total que creo un formulario (simple, simple, simple) en el que pongo los campos de la tabla, y el campo fecha viene con un DateTimePicker.
Voy recorriendo los registros con el BindingNavigator, y todo bien. Modifico un registro, lo guardo y bien.
Pero si "añado" un registro, al guardarlo me un error diciendome que el campo "FECHA" no admite valores nulos, y doy fé de que tiene un valor.

Total, sábado por la tarde y desesperado.
Me ayuda alguien antes de que me coma el teclado?

Gracias
  #2 (permalink)  
Antiguo 11/10/2008, 10:29
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Error al insertar fecha en Sql Server 2005

Cita:
Iniciado por Urko56 Ver Mensaje
Buenas, trabajo con Visual Studio 2005 y una base de datos en Sql Server 2005 Express.
Tengo una tabla con un campo llamado "FECHA" y que forma parte de una clave primaria, lo digo por si pudieran ir por ahi los tiros.
Total que creo un formulario (simple, simple, simple) en el que pongo los campos de la tabla, y el campo fecha viene con un DateTimePicker.
Voy recorriendo los registros con el BindingNavigator, y todo bien. Modifico un registro, lo guardo y bien.
Pero si "añado" un registro, al guardarlo me un error diciendome que el campo "FECHA" no admite valores nulos, y doy fé de que tiene un valor.

Total, sábado por la tarde y desesperado.
Me ayuda alguien antes de que me coma el teclado?

Gracias
Al insertar el campo fecha, lo estás formateando?

DateTimePicker1.Value.ToString("MM/dd/yyyy")

a mí así me funciona, sino podrías poner cómo haces el INSERT (si es que no te has comido todavía el teclado). Me quedan un par de horas para ir de marcha con los amiguetes.


  #3 (permalink)  
Antiguo 11/10/2008, 10:54
 
Fecha de Ingreso: marzo-2008
Mensajes: 127
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Error al insertar fecha en Sql Server 2005

El teclado sigue aquí, pero yo sigo desesperado.

El método insert lo genera automáticamente la herramienta de desarrollo (Visual Studio) al crear el dataset
Respecto al formato del DateTimePicker selecciono el formato "short" en las propiedades del control, "dd/mm/aaaa"
Hasta ahora había trabajado con bases de datos de access, y no había tenido problemas, salvo la lentitud.

El cambio a Sql Server va a acabar conmigo......
  #4 (permalink)  
Antiguo 11/10/2008, 11:43
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Error al insertar fecha en Sql Server 2005

Cita:
Iniciado por Urko56 Ver Mensaje
El teclado sigue aquí, pero yo sigo desesperado.

El método insert lo genera automáticamente la herramienta de desarrollo (Visual Studio) al crear el dataset
Respecto al formato del DateTimePicker selecciono el formato "short" en las propiedades del control, "dd/mm/aaaa"
Hasta ahora había trabajado con bases de datos de access, y no había tenido problemas, salvo la lentitud.

El cambio a Sql Server va a acabar conmigo......
Bueno, ya que por lo visto no quieres poner tu código, te pongo el mío (sólo la parte de agregar datos)

Código:
Imports System.Data.SqlClient

Public Class Form1

    Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;" & _
                                 "AttachDbFilename=""|DataDirectory|\Facturacion.mdf"";" & _
                                 "Integrated Security=True;Connect Timeout=30;" & _
                                 "User Instance=True")
    Dim cmd As New SqlCommand()
    Dim da As New SqlDataAdapter(cmd)
	
    Private Sub cmdAñadir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAñadir.Click
        Try
            Añadir()
        Catch ex As Exception
            MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error")
        Finally
            con.Close()
        End Try
    End Sub

    Private Sub Añadir()
        Dim nReg As Long = ComboBox1.Items.Count + 1
        cmd.Connection = con
        con.Open()

        cmd.CommandText = "INSERT INTO Facturas " & _
        "(Id, Num_Fra, Fecha_Fra, Num_Clie, Tipo_IVA, " & _
        "Base_Euros, IVA_Euros, Total_Euros, Pagada) " & _
        "VALUES ('" & nReg & "', '" & TxtNumero.Text & "', '" & _
        DtpFecha.Value.ToString("MM/dd/yyyy") & "', '" & _
        TxtCliente.Text & "', '" & TxtTipo.Text & "', '" & _
        TxtBase.Text & "', '" & TxtIva.Text & "', '" & TxtTotal.Text & "', '" & _
        IIf(CheckBox1.Checked = True, 1, 0) & "')"

        cmd.ExecuteNonQuery()
        con.Close()
        MsgBox("Registro añadido")
        FillCombo()
    End Sub
End Class
Espero que te sea de alguna utilidad, si tienes alguna duda mañana (creo) te contesto. Ahora me voy, hasta mañana!!


  #5 (permalink)  
Antiguo 12/10/2008, 02:28
 
Fecha de Ingreso: marzo-2008
Mensajes: 127
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Error al insertar fecha en Sql Server 2005

No, por Dios, no se trata de que no quiera poner mi código. Simplemente no lo hay.

Se crea un formulario, se crea un dataset, se arrastran los campos del dataset al formulario, y está el tema montado con su bindingnavigator y todo el patín. Luego los detalles, pero el armazón está hecho. ¿Es esto bueno?, pues si funciona, si. Pero si no funciona, uno no sabe donde mirar ni que hacer, y esa sensación de impotencia..... que os voy a contar que no sepais!

He probado más cosas, y creo que tengo acotado el problema. Trato de darle un valor por defecto al DateTimePicker, concretamente:
me.FECHADateTimePicker.value=Today, y aquí es donde se descacharra el control, vamos, que no vuelve a reaccionar hasta que salgo del formulario. Total, que aunque se vea la fecha perfectamente en el control, por dentro lleva un nulo como una casa, o un formato que para nada se entiende con la base de datos.
He probado:
me.FECHADateTimePicker.text=str(Today)
me.FECHADateTimePicker.text=Today.ToString("dd/MM/yyyy")
me.FECHADateTimePicker.text=Today.ToString("MM/dd/yyyy")
me.FECHADateTimePicker.text=str(Now)
me.FECHADateTimePicker.text=Now.ToString("dd/MM/yyyy")
me.FECHADateTimePicker.value=Today
me.FECHADateTimePicker.value=Now
Y seguro que me dejo algo, y no hay manera, "Nulo" por resultado.

Entonces cambiaria la pregunta, ¿se le puede dar un valor por defecto a un control de este tipo?¿Cómo?

Bueno, para quitar la legañas del sábado sabadete, es bastante.

Saludos y gracias de nuevo
  #6 (permalink)  
Antiguo 12/10/2008, 03:13
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Error al insertar fecha en Sql Server 2005

Cita:
Iniciado por Urko56 Ver Mensaje
...
Entonces cambiaria la pregunta, ¿se le puede dar un valor por defecto a un control de este tipo?¿Cómo?

Bueno, para quitar la legañas del sábado sabadete, es bastante.

Saludos y gracias de nuevo
Hola Urko,

aunque sea con la semi-resaca del domingo, prueba así:

DateTimePicker1.Value = Today.ToShortDateString

esto debería asignar sin problemas el valor de la fecha de hoy al DTPicker.

En cuanto al campo 'Fecha' de la tabla, comprueba que la propiedad Data Type está a 'System Date Time'

No te puedo decir más, lo siento..

  #7 (permalink)  
Antiguo 12/10/2008, 03:41
 
Fecha de Ingreso: marzo-2008
Mensajes: 127
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Error al insertar fecha en Sql Server 2005

Pues sigue sin ir.
Bueno, gracias por todo Avellaneda. Si lo resuelvo, que espero que así sea (el cuando es otra cosa) lo publicaré aquí mismo.

Venga, a disfrutar del Domingo.

Saludos
  #8 (permalink)  
Antiguo 02/10/2010, 15:43
 
Fecha de Ingreso: mayo-2010
Mensajes: 3
Antigüedad: 14 años
Puntos: 0
Respuesta: Error al insertar fecha en Sql Server 2005

Estimados amigos. Me colo en el post porque yo también estoy usando SqlServer, VB 6.0 y tengo problemas con el tema de las fechas; pero mi situación es distinta a la de Urko56.
Les comento:

Lo que quiero hacer es introducir una fecha en un textbox y que esta sea almacenada en la base de datos. Tenía este código que pongo a continuación, el cual usaba con acces y me funciona correctamente pero lo quiero usar en SqlServer 2005 y no me anda.
Quisera ver si me pueden dar una manito.

Acá va el código que me funciona con Acces:

Public Function SQLDate(Fecha) As String
If Not IsNull(Fecha) Then
If IsDate(Fecha) Then
SQLDate = "#" & Format(Fecha, "mm/dd/yyyy") & "#"
Else
SQLDate = "Null"
End If
Else
SQLDate = "Null"
End If
End Function

Acá el error que me tira SqlServer:

error '-2147217900 (80040e14)' en tiempo de ejecución : el nombre #20# no es válido en este contexto. Las expresiones válidas son constantes, expresiones de constantes y, en algunos contextos, varialbes. No se permiten nombres de columna.

(el número 20 que está entre los numerales es el día de la semana de la fecha que quiero ingresar)
Cabe aclarar que el campo fecha de la tabla a la que quiero agregar el campo es de tipo datetime.
Bueno, espero puedas darme una mano.
Desde ya muchas gracias!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:49.