Otra vez yo !

Hola brother, disculpa la molestia
Esta vez lo que quiero hacer es volcar sobre un datagrid el resultado de una consulta de selección que relaciona a varias tablas.
El datagrid lo utilizo de forma "manual", todo por código, y solo quiero usarlo para mostrar el resultado de la selección, sin embargo solo me muestra el último registro de los que me devuelve.
Si son cuatro los registros a mostrar me deja 3 filas en blanco y en la última me muestra el último registro.
Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\EM3\EM3.mdb")
        Dim obtener As New OleDbCommand("select * from profesores")
        Dim obt As OleDbDataReader
        Dim cop As String
        con.Open()
        obtener.Connection = con
        obt = obtener.ExecuteReader()
        While obt.Read()
            If obt(1).ToString = ComboBox1.Text Then
                cop = obt(0).ToString
            End If
        End While
        con.Close()
***************************************
El código de arriba lo utilizo para obtener el código de un campo seleccionado de un combobox. Es decir, en el combobox hay una lista de nombres y al seleccionar uno yo busco en la base de datos su respectivo código y lo guardo en la variable "cop"
****************************************  
      Dim com As New OleDbCommand("select p.nombre , c.nom_curso , a.nombre ,r.dias , r.hora_ini , r.hora_fin " & _
        " from registro r , profesores p , alumnos a , cursos c " & _
        "where(r.cod_profesor = p.codigo And r.codigo = a.codigo And r.cod_curso = c.codigo) " & _
        " and r.cod_profesor = " & cop)
        Dim resulta As OleDbDataReader
        con.Open()
        com.Connection = con
        resulta = com.ExecuteReader()
        Dim f As Integer
        f = 0
        While resulta.Read()
            DataGridView1.Item(0, f).Value = resulta(0)
            DataGridView1.Item(1, f).Value = resulta(1)
            DataGridView1.Item(2, f).Value = resulta(2)
            DataGridView1.Item(3, f).Value = resulta(3)
            DataGridView1.Item(4, f).Value = resulta(4)
            DataGridView1.Item(5, f).Value = resulta(5)
            DataGridView1.RowCount += 1
            f += 1
        End While
    End Sub
Cuando hago el bucle "while resulta.read()" no me genera ningún error, pero no se muestran bien los datos en el datagrid. Es decir, Si son cuatro los registros a mostrar me deja 3 filas en blanco y en la última me muestra el último registro.

2 Respuestas

Respuesta
1
DataGridView1.Datasource = resulta, esto te funciona o da errorr? ¿Qué versiond e VS estas utiliznado? ¿2005 o 2008?
Respuesta
-1
Esa esta un poquito más difícil de contestar, me puedes enviar por correo personal.
[email protected]
[email protected]
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas