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

Problema con consulta mostrar en un form, no retorna los datos.

Estas en el tema de Problema con consulta mostrar en un form, no retorna los datos. en el foro de .NET en Foros del Web. En una aplicación tengo 5 forms (Teacher,group, hour, subject, classroom) que se relacionan con un 6 form (Class). El form class tiene 5 combobox, (cboteacher, ...
  #1 (permalink)  
Antiguo 09/11/2011, 09:08
 
Fecha de Ingreso: julio-2011
Ubicación: Medellín
Mensajes: 16
Antigüedad: 12 años, 8 meses
Puntos: 0
Problema con consulta mostrar en un form, no retorna los datos.

En una aplicación tengo 5 forms (Teacher,group, hour, subject, classroom) que se relacionan
con un 6 form (Class). El form class tiene 5 combobox, (cboteacher, cbogroup, cbohour, cbosubject,cboclassroom) los cuales deben cargarsen con los datos del form periférico correspondiente ("Cboteacher" del form "class" es cargado con los datos del form "teacher", "Cbogroup" del form "class" es cargado con los datos del form "group"), los cargamos de esta manera:

con el método activated : [CODE]

Código:
 Private Sub Frmclass_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
        cargar_Teacher()

        cargar_hour()

        cargar_classroom()
End sub
y con el método load:

Código:
 Private Sub Frmclass_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Call mostrar()

        cargar_Teacher()
        bloquear()
        cargar_class()
        cargar_Teacher()
        cargar_Group()
        cargar_hour()

        cargar_classroom()
        Cargar_cbo()
    End Sub
cada cbo es cargado de esta forma

Código:
Sub cargar_Teacher()
        Dim da As New OleDb.OleDbDataAdapter("Select *from Teacher", cn)
        Dim ds As New DataSet
        da.Fill(ds, "Teacher")
        cbokteacher.DataSource = ds.Tables("Teacher")
        cbokteacher.ValueMember = "IdTeacher"
        cbokteacher.DisplayMember = "naime"

        Dim displaymember As String = String.Empty
        displaymember = cbokteacher.SelectedValue.ToString()
    End Sub

los métodos descritos anteriormente funcionan muy bien, si agrego en el form "teacher" un nuevo profesor, digamos "John" y luego ingreso al form "class" y chequeo el "cboteacher" este despliega el nuevo profesor agregado, "john" perfectamente.

Pero tengo un problema. Primero explico algo: el from class, contiene un data grid, que muestra un horario, de esta forma:

cboteacher cbosubject

cbogroup cboclassroom

cbohour

Class Day Hour Teacher Group Subject Classroom
M1A Monday 6:30 Edward 9a Programming 9as
T1B Tuesday 7:30 Jack 9b Biology 9bs

De esta forma, "cboteacher" contiene a "Edward" y a "Jack", cbogroup contiene a "9a" y a "9b", ya que estos datos son los que contiene el form con el cual está conectados, no sé si me hice entender?

El problema es
Si ingreso a cualquiera de los form periféricos, digamos que entro a "teacher" y agrego un nuevo profesor que no aparece en el form class, digamos "carlos", cuando intento mostrar los datos de este nuevo profesor ("carlos") en el form "teacher" me aparece un error. Es decir, creo que el problema surge porque este nuevo profesor ("carlos") no aparece en el "datagrid" del form "class", ya que si ingreso al form "teacher" y busco los datos de "Edward" que sí aparece en el form "class" estos son mostrados sin ningún inconvenitente.

El método que estoy utilizando para mostrar datos en el form "teacher" es el siguiente:
Código:
Sub BUSCAR()
        'Dim id As String = cboidteacher.ValueMember
        Dim cmd As New OleDb.OleDbCommand("select * from teacher where IdTeacher='" & cboidteacher.Text & "'", cn)
        'Dim cmd As New OleDb.OleDbCommand("select * from teacher where IdTeacher='" & id & "'", cn)
        Dim dr As OleDb.OleDbDataReader
        cn.Open()
        dr = cmd.ExecuteReader
        If dr.Read Then
            txtname.Text = dr(1)
            txtlast.Text = dr(3)
            cbosubject.Text = dr(2)
            txttel.Text = dr(4)
            txtemail.Text = dr(5)
            txtsal.Text = dr(6)
            txtass.Text = dr(7)
            cboshift.Text = dr(8)
        Else
            MsgBox("error")
        End If
        cn.Close()
    End Sub
como puedo solucionarlo??, lo que necesito es que el form "teacher" y cualquier otro de los form periféricos, me muestre los datos de cualquier registro cuando los busco desde el "form" sin importar si estos aparecen o no el datagrid, ("el cronograma") del form "class".

Alguna duda me informan.

Gracias de antemano.

Etiquetas: basic
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 01:07.