CLR: .Net / Mono / Boo / Otros CLR > VB .NET
Error Al Insertar Fecha (sql 2005)
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 = "" CPeriodo = -1 DetGlosa = "" Est = -1 FechaPro = "01/01/1901" Campos.Add("varchar") Campos.Add("DESCRIPCIONplan") Campos.Add("int") Campos.Add("CPERIODOplan") Campos.Add("varchar") Campos.Add("GLOSAplan") Campos.Add("smallint") Campos.Add("ESTADOplan") Campos.Add("datetime") Campos.Add("FPROCESO") 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("PLANES", IDPLANES, Comando) id_planes = IDPLANES Desc = dr(1) CPeriodo = dr(2) DetGlosa = dr(3) Est = dr(4) FechaPro = dr(5) Campos.Add("varchar") Campos.Add("DESCRIPCIONplan") Campos.Add("int") Campos.Add("CPERIODOplan") Campos.Add("varchar") Campos.Add("GLOSAplan") Campos.Add("smallint") Campos.Add("ESTADOplan") Campos.Add("datetime") Campos.Add("FPROCESO") 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("varchar") Valores.Add(Descripcion_PLanes) Valores.Add("int") Valores.Add(CodPeriodo) Valores.Add("varchar") Valores.Add(DetalleGlosa) Valores.Add("smallint") Valores.Add(Estado_planes) Valores.Add("datetime") Valores.Add(FechaProceso_Plan) Return AD.Insertar("PLANES", 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 = " Insert Into " & Tabla & "(" Consulta2 = ") Values (" Dim Cont As Integer = 0 While Cont <= Valores.Count - 1 Select Case Valores(Cont) Case "varchar" Consulta = Consulta & Campos(Cont + 1) Consulta2 = Consulta2 & "'" & Valores(Cont + 1) & "'" Case "int" Consulta = Consulta & Campos(Cont + 1) Consulta2 = Consulta2 & Valores(Cont + 1) Case "datetime" Consulta = Consulta & Campos(Cont + 1) Consulta2 = Consulta2 & "'" & Valores(Cont + 1) & "'" Case "smallint" Consulta = Consulta & Campos(Cont + 1) Consulta2 = Consulta2 & Valores(Cont + 1) Case "decimal" Consulta = Consulta & Campos(Cont + 1) Consulta2 = Consulta2 & Valores(Cont + 1) End Select Cont = Cont + 2 If Cont > Valores.Count - 1 Then Consulta2 = Consulta2 & ")" Else Consulta = Consulta & "," Consulta2 = Consulta2 & "," End If End While Command.CommandText = Consulta & Consulta2 Command.ExecuteNonQuery() Dim Codigo As Integer Command.CommandText = "Select Max(ID_" & Tabla & ") From " & 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
[#] Página Siguiente
Ir a la versión completa