Visual Basic.NET - FECHAS EN BASE DE DATOS

   
Vista:
Imágen de perfil de FRANCISCO

FECHAS EN BASE DE DATOS

Publicado por FRANCISCO (162 intervenciones) el 19/05/2010 16:20:55
TENGO EL SIGUIENTE CODIGO:

la fecha que aparece en el textbox es la siguiente

textbox1.text=19/05/2010 14:25:34

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim direccion As String
direccion = My.Application.Info.DirectoryPath
direccion = direccion & "\AGENDA.mdb"

Dim conexion As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & direccion)
conexion.Open()

' aqui la consulta es= selecciona nombre donde fecha =textbox1.text

Dim CONSULTA As String = "SELECT NOMBRE FROM PERSONAL WHERE FECHA='" & CDate(TextBox1.Text) & "'"

' en la base de datosla fecha esta guardada en el mismo formato pero me da error

Dim COMANDO As New OleDbCommand(CONSULTA, conexion)

dim solucion as object= COMANDO.ExecuteScalar() ' error No coinciden los tipos de datos en la expresión de criterios.
msgbox(solucion)
End Sub
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

RE:FECHAS EN BASE DE DATOS

Publicado por OliBeer (6 intervenciones) el 19/05/2010 17:32:44
Hola,

En primera debes guardar la fecha sin la hora, porque cuando la compares será muy difícil que coincidan. Dale un format a la fecha de esta manera:

Dim CONSULTA As String = "SELECT NOMBRE FROM PERSONAL WHERE FECHA='" & Format(CDate(TextBox1.Text), '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
Imágen de perfil de FRANCISCO

RE:FECHAS EN BASE DE DATOS

Publicado por FRANCISCO (162 intervenciones) el 20/05/2010 15:41:14
gracias por tu ayuda pero me da error
he copiado la fecha que tengo en ala base de datos y la he pegado en la consulta y aun asi me sigue dando error
lo he probado sin la hora cambiando el formato de la base de datos para que coincidan y me sigue dando error

luego he cambiado en la base de datos el tipo de datos a texto y asi va perfectamente
pero si lo pongo en tipo de dato fecha/hora me da error sin embargo en sqlexpress va perfectamente de las dos maneras

Dim conexion As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & direccion)
conexion.Open()
Dim CONSULTA As String = "SELECT fecha FROM PERSONAL WHERE fecha ='19/05/2010 0:00:00'"
' si cambio en la base de datos fecha tipo de datos=texto funciona perfectamente
' si pongo en la base de datos fecha tipo datos en fecha/hora me da error

Try
Dim COMANDO As New OleDbCommand(CONSULTA, conexion)
Dim solucion As Object = COMANDO.ExecuteScalar()

TextBox2.Text = solucion
Catch ex As Exception
MsgBox(ex.Message)
End Try
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

RE:FECHAS EN BASE DE DATOS

Publicado por Jorge Morales (2 intervenciones) el 20/05/2010 17:39:58
Prueba usando el formato yyyy/mm/dd osea

"SELECT fecha FROM PERSONAL WHERE fecha ='2010/05/19 0:00:00'"

aunque para evitarte este tipo de problemas te sugiero pasar los valores como parametros, algo asi:

Dim conexion As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & direccion)
conexion.Open()
Dim CONSULTA As String = "SELECT fecha FROM PERSONAL WHERE fecha = :FECHA'"

Try
Dim COMANDO As New OleDbCommand(CONSULTA, conexion)
comando.parameters.add(":FECHA", date) 'sinceramente no recuerdo como va el tipo de datos, pero seguro lo encontraras
comando.parameters(":FECHA").value = date.now 'o sustituir por cualquier valor de tipo fecha
Dim solucion As Object = COMANDO.ExecuteScalar()

TextBox2.Text = solucion
Catch ex As Exception
MsgBox(ex.Message)
End Try

Espero te sea de ayuda.

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

RE:FECHAS EN BASE DE DATOS

Publicado por Damian (824 intervenciones) el 21/05/2010 15:30:03
Dim fecha As DateTime

fecha = Convert.ToDateTime(textbox1.Text)

Dim CONSULTA As String = "SELECT NOMBRE FROM PERSONAL WHERE FECHA='" & fecha.ToString("s") & "'"
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
Imágen de perfil de FRANCISCO

RE:FECHAS EN BASE DE DATOS

Publicado por FRANCISCO (162 intervenciones) el 21/05/2010 18:58:57
no hay forma hago la misma consulta de fecha en sqlsever y funciona
pero en ascees no hay forma el caso esque si pongo en la base de datos fecha tipo texto
funciona pero al cambiarla fecha en la base de datos en tipo fecha/hora ya me da error
de todas formas muchas gracias por la ayuda


' aqui selecciona la fecha de la tabla personal solo hay una porque lo estoy probando

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim direccion As String
direccion = My.Application.Info.DirectoryPath
direccion = direccion & "\AGENDA.mdb"

Dim conexion As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & direccion)
conexion.Open()
Dim CONSULTA As String = "SELECT FECHA FROM PERSONAL"
Dim COMANDO As New OleDbCommand(CONSULTA, conexion)
Dim RESULTADO As Object = COMANDO.ExecuteScalar
TextBox1.Text = RESULTADO.ToString

End Sub

' y aqui cojo la fecha que me ha devuelto la base de datos en la consulta anterior y se la paso a la otra consulta ose a que la fecha es la misma

ahora si la fecha en la base de datos la tengo definida como texto funciona
pero si voy a la base de datos y cambio fecha atipo de dato fecha/hora ya no va
porque????????????????

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim direccion As String
direccion = My.Application.Info.DirectoryPath
direccion = direccion & "\AGENDA.mdb"
' aqui la consulta es= selecciona nombre donde fecha =textbox1.text

Dim fecha As String

fecha = TextBox1.Text

Dim conexion As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & direccion)
conexion.Open()
Dim CONSULTA As String = "SELECT nombre FROM PERSONAL WHERE fecha ='" & TextBox1.Text & "'"

Try
Dim COMANDO2 As New OleDbCommand(CONSULTA, conexion)
Dim solucion As Object = COMANDO2.ExecuteScalar()

TextBox2.Text = solucion.ToString
Catch ex As Exception
MsgBox(ex.Message)
End Try

End Sub

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
Imágen de perfil de FRANCISCO

RE:FECHAS EN BASE DE DATOS

Publicado por FRANCISCO (162 intervenciones) el 25/05/2010 18:53:33
Ya tengo ls solucion por fin gracias por los consejos

Dim SEL As String = "DELETE FROM ALARMAS WHERE fechaalarma=#" & Format(fechaalarma, "MM/dd/yyyy") & " " & Format(fechaalarma, "HH:mm") & "#"

Un SALUDO
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