Foros del Web » Programación para mayores de 30 ;) » .NET »

Como hacer una consulta SQL que devuelva datos en particular

Estas en el tema de Como hacer una consulta SQL que devuelva datos en particular en el foro de .NET en Foros del Web. Hola, tengo una duda estoy trabajando con vb.net 2005 y una base en access, quiero hacer una consulta, tengo un form con un datetimepicker para ...
  #1 (permalink)  
Antiguo 29/02/2012, 12:24
 
Fecha de Ingreso: febrero-2012
Mensajes: 16
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta Como hacer una consulta SQL que devuelva datos en particular

Hola, tengo una duda estoy trabajando con vb.net 2005 y una base en access, quiero hacer una consulta, tengo un form con un datetimepicker para seleccionar la fecha, un button para ejecutar la consulta y un listview para mostrar los datos de la sentencia, pero se ve que estoy planteando mal la sentencia ya que me devuelve todo lo ingresado en la tabla no la fecha que seleccione en DTP. Son mis primeros pasos en visual asi que agradeceria quien pudiera guiarme!!!, dejo el cod para que me indiquen lo que hago mal, GRACIAS!!!!

Private Sub BtBuscar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtBuscar.Click

con.Open()

Dim Listar As New OleDbCommand
Listar.Connection = con
Listar.CommandType = CommandType.Text
Listar.CommandText = "Select * FROM Ingresos WHERE [Fecha] = @fecha"
Listar.Parameters.AddWithValue("@fecha", DtpFecha.Text)



Dim Lector As OleDbDataReader
Lector = Listar.ExecuteReader
Do While Lector.Read
Dim MITem As ListViewItem
MITem = LstMovimientos.Items.Add(Lector("CodCuenta"))
MITem.SubItems.Add(Lector("Codsocio"))
MITem.SubItems.Add(Lector("Apellido"))
MITem.SubItems.Add(Lector("Importe"))
Loop
Lector.Close()
con.Close()
End Sub
  #2 (permalink)  
Antiguo 29/02/2012, 12:58
Avatar de emmax  
Fecha de Ingreso: agosto-2010
Ubicación: Sonora
Mensajes: 172
Antigüedad: 14 años, 3 meses
Puntos: 8
Respuesta: Como hacer una consulta SQL que devuelva datos en particular

Hola, prueba lo siguiente en la consulta.

Listar.CommandText = "Select * FROM Ingresos WHERE Fecha = #@fecha#"
y creo que para el formato de la fecha, si tienes como fecha y hora el campo en tu BD seria algo asi.

Listar.Parameters.AddWithValue("@fecha", Me.DateTimePicker1.Value.Date)

Esta consulta ponla en el evento ValueChanged del DateTimePicker aparte de en tu boton para asi cada que cambie la fecha el usuario te mande los datos y te ahorrarias el estar clickeando el boton en cada cambio de fecha.

Comenta si te sirvio, saludos........
  #3 (permalink)  
Antiguo 01/03/2012, 07:14
 
Fecha de Ingreso: febrero-2012
Mensajes: 16
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Como hacer una consulta SQL que devuelva datos en particular

emmax, como estas? Gracias por tu ayuda, te comento hice los cambios que me sugeriste pero cuando cooro la aplicacion y quiero seleccionar una fecha sale el siguiente error "Error de sintaxis en la fecha en la expresión de consulta 'Fecha = #@fecha#'."
te dejo el codigo, te agradeceria si lo pudieras ver porque se ve que sigo haciendo algo mal. Gracias por tu ayuda

Private Sub DtpFecha_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DtpFecha.ValueChanged
con.Open()

Dim Listar As New OleDbCommand
Listar.Connection = con
Listar.CommandType = CommandType.Text
Listar.CommandText = "Select * FROM Ingresos WHERE Fecha = #@fecha#"
Listar.Parameters.AddWithValue("@fecha", Me.DtpFecha.Value.Date)



Dim Lector As OleDbDataReader
Lector = Listar.ExecuteReader
Do While Lector.Read
Dim MITem As ListViewItem
MITem = LstMovimientos.Items.Add(Lector("CodCuenta"))
MITem.SubItems.Add(Lector("Codsocio"))
MITem.SubItems.Add(Lector("Apellido"))
MITem.SubItems.Add(Lector("Importe"))
Loop
Lector.Close()
con.Close()
End Sub
  #4 (permalink)  
Antiguo 01/03/2012, 10:49
Avatar de emmax  
Fecha de Ingreso: agosto-2010
Ubicación: Sonora
Mensajes: 172
Antigüedad: 14 años, 3 meses
Puntos: 8
Respuesta: Como hacer una consulta SQL que devuelva datos en particular

una disculpa error mio, prueba lo siguiente.

Dim Listar As New OleDbCommand
Listar.Connection = con
Listar.CommandType = CommandType.Text
Listar.Parameters.AddWithValue("@fecha", Me.DtpFecha.Value.Date)
Listar.CommandText = "Select * FROM Ingresos WHERE (((Ingresos.fecha)=@fecha))"




Dim Lector As OleDbDataReader
Lector = Listar.ExecuteReader
Do While Lector.Read
Dim MITem As ListViewItem
MITem = LstMovimientos.Items.Add(Lector("CodCuenta"))
MITem.SubItems.Add(Lector("Codsocio"))
MITem.SubItems.Add(Lector("Apellido"))
MITem.SubItems.Add(Lector("Importe"))
Loop
Lector.Close()
con.Close()
End Sub

Comenta si te sirvio, Saludos.......
  #5 (permalink)  
Antiguo 01/03/2012, 20:24
 
Fecha de Ingreso: febrero-2012
Mensajes: 16
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Como hacer una consulta SQL que devuelva datos en particular

emmax, muchisimas gracias por tu pronta respuesta y tu explicacion, puse el codigo que me enviaste pero al correr la aplicacion me tira un nuevo error, mi problemas es que no tengo mucha experiencia con visual, este es mi primer proyecto, te agradeceria pudieras guiarme en donde me estoy equivocando, el error dice "No se encontro OleDBexception, No se han especificado valores para algunos de los parámetros requeridos." GRACIAS!!!

Option Explicit On
Imports System
Imports System.Data
Imports System.Data.OleDb
Imports System.Text
Public Class FrmCajadiaria
Dim con As New OleDb.OleDbConnection
Dim dbProvider As String
Dim dbSource As String
Dim da As OleDb.OleDbDataAdapter
Dim ds As New DataSet
Dim Maximo As Integer
Dim i As Integer

Private Sub FrmCajadiaria_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0; "
dbSource = "Data Source = D:\Bdsplash.mdb"

con.ConnectionString = dbProvider & dbSource
End Sub

Private Sub BtLimpiar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtLimpiar.Click
LstMovimientos.Items.Clear()

End Sub

Private Sub BtBuscar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtBuscar.Click
con.Open()

Dim Listar As New OleDbCommand
Listar.Connection = con
Listar.CommandType = CommandType.Text
Listar.Parameters.AddWithValue("@fecha", Me.DtpFecha.Value.Date)
Listar.CommandText = "Select * FROM Ingresos WHERE (((Ingresos.fecha)=@fecha))"



Dim Lector As OleDbDataReader
Lector = Listar.ExecuteReader
Do While Lector.Read
Dim MITem As ListViewItem
MITem = LstMovimientos.Items.Add(Lector("CodCuenta"))
MITem.SubItems.Add(Lector("Codsocio"))
MITem.SubItems.Add(Lector("Apellido"))
MITem.SubItems.Add(Lector("Importe"))
Loop
Lector.Close()
con.Close()
End Sub
End Class
  #6 (permalink)  
Antiguo 01/03/2012, 21:41
Avatar de emmax  
Fecha de Ingreso: agosto-2010
Ubicación: Sonora
Mensajes: 172
Antigüedad: 14 años, 3 meses
Puntos: 8
Respuesta: Como hacer una consulta SQL que devuelva datos en particular

Hola samyy_g, a lo que puedo ver de tu codigo esta bien, el error que comentas a lo que se es que no se esta tomando o pasando el valor para la consulta, en este caso seria la fecha, a lo que me ha pasado en ocasiones es que no estoy tomando correctamente el valor, por lo que te diria que cheques como tienes tu DTP, si estas tomando el valor correctamente o si ya lo tienes antes de dar click al boton, es decir si al momento de llamar al evento esta activo tu DTP por ejemplo, espero esto te sirva de ayuda para solucionar tu problema.

Saludos......
  #7 (permalink)  
Antiguo 05/03/2012, 07:45
 
Fecha de Ingreso: febrero-2012
Mensajes: 16
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Como hacer una consulta SQL que devuelva datos en particular

Emmax, muchas gracias por tu ayuda. Saludos!!

Etiquetas: net, sql, tabla, vb, visual
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 05:55.