CLR: .Net / Mono / Boo / Otros CLR > VB .NET

 Error Al Insertar Fecha (sql 2005)

(1/3) > >>

Sagma:
hola a todos, como estan, estoy teniendo problemas al tratar de inserta una fecha con la hora en una DB de SQL 2005, he puesto SET DATEFORMA dmy y naranjas este es el codigo que tengo:


--- Código: Text --- Dim FPro As DateTime FPro = DateTime.Now FPro = Format(FPro, "dd/MM/yyyy") 'FPro = Format(FPro, "dd/MM/yyyy hh:mm:ss")  Me.txt_codigo.Text = Pn.Nuevo(Desc, CPeri, DGlos, VCom, FPro)  
y el error que me tira es este:


--- Citar ---Error en la insercion del PlanThe conversion of a char data type to a datetime data type resulted in an out-of-range datetime value
--- Fin de la cita ---

ya que quiero insertar la fecha y la hora, alguien me puede orientar que estoy haciendo mal ????

gracias

ElNapster:
Chequea el regional settings de tu maquina ya que talvez tienes el formato de mm/dd/yyyy y estas tratando de ingresar el formato dd/mm/yyyy  ;)

Cualquier cosa me contas....  :comp:

senzao18:
Por que no pones la parte de codigo en la que estas insertando el dato a la tabla....

Yo para no meterme con esas mentadas fechas... uso parameter ya sea en commandstring "insert into table (fecha,n1,n2...) values(@fecha,@n1,@n2...)"

Usando procedimientos almacenados nunca eh tenido ese problema......

El problema en si lo tienes a la hora de hacer el insert......

Sagma:
gracias por contestar, el regional settins de mi maquina esta Español-Bolivia, y es dd/MM/yyyy.

Y esta es la manera que estoy haciendo en tres capas (espero que sea asi).  <_<


--- Código: Text ---      Sub New(ByVal Comando As SqlClient.SqlCommand)        Command = Comando        id_planes = -1        Desc = &#34;&#34;        CPeriodo = -1        DetGlosa = &#34;&#34;        Est = -1        FechaPro = &#34;01/01/1901&#34;         Campos.Add(&#34;varchar&#34;)        Campos.Add(&#34;DESCRIPCIONplan&#34;)        Campos.Add(&#34;int&#34;)        Campos.Add(&#34;CPERIODOplan&#34;)        Campos.Add(&#34;varchar&#34;)        Campos.Add(&#34;GLOSAplan&#34;)        Campos.Add(&#34;smallint&#34;)        Campos.Add(&#34;ESTADOplan&#34;)        Campos.Add(&#34;datetime&#34;)        Campos.Add(&#34;FPROCESO&#34;)    End Sub     Sub New(ByVal IDPLANES As Integer, ByVal Comando As SqlClient.SqlCommand)        Dim Datos As New AccesoDatos.Operaciones(Comando)        Dim dr As DataRow         Command = Comando        dr = Datos.TraerUno(&#34;PLANES&#34;, IDPLANES, Comando)         id_planes = IDPLANES        Desc = dr(1)        CPeriodo = dr(2)        DetGlosa = dr(3)        Est = dr(4)        FechaPro = dr(5)         Campos.Add(&#34;varchar&#34;)        Campos.Add(&#34;DESCRIPCIONplan&#34;)        Campos.Add(&#34;int&#34;)        Campos.Add(&#34;CPERIODOplan&#34;)        Campos.Add(&#34;varchar&#34;)        Campos.Add(&#34;GLOSAplan&#34;)        Campos.Add(&#34;smallint&#34;)        Campos.Add(&#34;ESTADOplan&#34;)        Campos.Add(&#34;datetime&#34;)        Campos.Add(&#34;FPROCESO&#34;)    End Sub Public Function Nuevo(ByVal Descripcion_PLanes As String, ByVal CodPeriodo As Integer, ByVal DetalleGlosa As String, ByVal Estado_planes As Integer, ByVal FechaProceso_Plan As DateTime) As Integer        Try             Dim AD As New AccesoDatos.Operaciones(Command)            Dim Valores As New ArrayList             Valores.Add(&#34;varchar&#34;)            Valores.Add(Descripcion_PLanes)            Valores.Add(&#34;int&#34;)            Valores.Add(CodPeriodo)            Valores.Add(&#34;varchar&#34;)            Valores.Add(DetalleGlosa)            Valores.Add(&#34;smallint&#34;)            Valores.Add(Estado_planes)            Valores.Add(&#34;datetime&#34;)            Valores.Add(FechaProceso_Plan)             Return AD.Insertar(&#34;PLANES&#34;, Campos, Valores)        Catch ex As Exception            Throw ex        End Try    End Function  

--- Código: Text ---     Public Function Insertar(ByVal Tabla As String, ByVal Campos As ArrayList, ByVal Valores As ArrayList) As Integer         Try            Dim Consulta As String            Dim Consulta2 As String            Consulta = &#34; Insert Into &#34; & Tabla & &#34;(&#34;            Consulta2 = &#34;) Values (&#34;             Dim Cont As Integer = 0            While Cont &#60;= Valores.Count - 1                Select Case Valores(Cont)                    Case &#34;varchar&#34;                        Consulta = Consulta & Campos(Cont + 1)                        Consulta2 = Consulta2 & &#34;'&#34; & Valores(Cont + 1) & &#34;'&#34;                    Case &#34;int&#34;                        Consulta = Consulta & Campos(Cont + 1)                        Consulta2 = Consulta2 & Valores(Cont + 1)                    Case &#34;datetime&#34;                        Consulta = Consulta & Campos(Cont + 1)                        Consulta2 = Consulta2 & &#34;'&#34; & Valores(Cont + 1) & &#34;'&#34;                    Case &#34;smallint&#34;                        Consulta = Consulta & Campos(Cont + 1)                        Consulta2 = Consulta2 & Valores(Cont + 1)                    Case &#34;decimal&#34;                        Consulta = Consulta & Campos(Cont + 1)                        Consulta2 = Consulta2 & Valores(Cont + 1)                End Select                 Cont = Cont + 2                If Cont &#62; Valores.Count - 1 Then                    Consulta2 = Consulta2 & &#34;)&#34;                Else                    Consulta = Consulta & &#34;,&#34;                    Consulta2 = Consulta2 & &#34;,&#34;                End If             End While             Command.CommandText = Consulta & Consulta2            Command.ExecuteNonQuery()             Dim Codigo As Integer            Command.CommandText = &#34;Select Max(ID_&#34; & Tabla & &#34;) From &#34; & Tabla            Return Command.ExecuteScalar         Catch ex As Exception            Throw ex        End Try     End Function  
es campo en la DB de SqlServer 2005 lo tengo como Datetime, ya que es lo unico que hay para almacenar fecha.

gracias por la ayuda.  :comp:

senzao18:
Trata con lo siguiente....


Consulta2 = Consulta2 & _
"(CONVERT(Datetime, CONVERT(Varchar, '" & _
Valores(Cont + 1) & _
 "', 101), 101) "

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa