Hola buenas,
Quiero hacer una busqueda a la bbdd pero no consigo que funcione, la bd es SqlServer2005
Os pongo el codigo a ver si me podeis ayudar y decir que hago mal o guiarme un poco
spoiler
Private Sub btBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btBuscar.Click
Dim cnstring As String = "Data Source=VAIO\SQLEXPRESS;Initial Catalog=GestorTareas;Persist Security Info=True;User ID=alumno;Password=alumno3597"
Dim cn As SqlConnection = New SqlConnection(cnstring)
'CREO EL PRINCIPIO DE MI SELECT
Dim mistring As String = "select * from gt_tareasplantilla where "
Dim ponerAnd As String = " and "
'CREO MIS PARAMETROS Y COMANDO
Dim miselect As SqlCommand = New SqlCommand(mistring, cn)
Dim minombre As SqlParameter = New SqlParameter("@Nombre", SqlDbType.NVarChar)
Dim midesc As SqlParameter = New SqlParameter("@Descripción", SqlDbType.NVarChar)
Dim mifactiv As SqlParameter = New SqlParameter("@FechaActivavion", SqlDbType.DateTime)
Dim mifcreac As SqlParameter = New SqlParameter("@FechaCreacion", SqlDbType.DateTime)
Dim miflimit As SqlParameter = New SqlParameter("@FechaLimite", SqlDbType.DateTime)
'AGREGO LOS PARAMETROS AL COMANDO
miselect.Parameters.Add(mifactiv)
miselect.Parameters.Add(miflimit)
miselect.Parameters.Add(mifcreac)
miselect.Parameters.Add(minombre)
miselect.Parameters.Add(midesc)
'MIRO MIS CONTROLES Y SI ESTAN VACIOS NO PONGO EL PARAMETRO EN LA STRING
'LOS VOY AGREGANDO POR MEDIO DE LA PROPIEDAD TAG
'A LA QUE LE TENGO ASIGNADO EL VALOR DE CADA CAMPO DE MI SELECT AL QUE SE REFIERE
'SI TIENE VALOR EL CONTROL LE AGREGO EL PARAMETRO A MI STRING Y LE DOY VALOR
For Each elemento In gbTarea.Controls
If TypeOf (elemento) Is TextBox Then
If elemento.text <> "" Then
mistring &= elemento.tag & "=@" & elemento.tag
mistring &= ponerAnd
minombre.Value = tbNombreTarea.Text
midesc.Value = tbDescripcionTarea.Text
End If
End If
If TypeOf (elemento) Is DateTimePicker Then
mistring &= elemento.tag & "=@" & elemento.tag
mistring &= ponerAnd
mifactiv.Value = CDate(dpFechaActiv.Value)
miflimit.Value = CDate(dpFechaLimit.Value)
mifcreac.Value = CDate(dpFechaCreac.Value)
End If
Next
'LE QUITO EL ULTIMO AND A LA STRING
mistring = mistring.Remove(mistring.Length - 4)
'ABRO LA CONEXION Y EJECUTO EL COMANDO DE BUSQUEDA
cn.Open()
Dim busqueda As SqlDataReader
busqueda = miselect.ExecuteReader() 'AQUI ME DA ERROR-> Sintaxis incorrecta cerca de 'where'.
If busqueda.HasRows Then
While busqueda.Read
MessageBox.Show("hay datos")
End While
Else
MessageBox.Show("no hay datos")
End If
cn.Close()
End Sub
'ESTE SERIA EL SELECT-> "select * from gt_tareasplantilla where FechaLimite=@FechaLimite and FechaCreacion=@FechaCreacion and FechaActivavion=@FechaActivavion and Descripción=@Descripción and Nombre=@Nombre”
Gracias c.c!