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

Problema al buscar

Estas en el tema de Problema al buscar en el foro de .NET en Foros del Web. Tengo un problema, tengo un formulario llamado 'BuscarAlumnos' donde hay un Textbox para introducir el DNI del alumno que estemos buscando y al lado tenemos ...
  #1 (permalink)  
Antiguo 05/12/2009, 07:15
 
Fecha de Ingreso: junio-2008
Mensajes: 93
Antigüedad: 15 años, 10 meses
Puntos: 1
Problema al buscar

Tengo un problema, tengo un formulario llamado 'BuscarAlumnos' donde hay un Textbox para introducir el DNI del alumno que estemos buscando y al lado tenemos un botón. Cuando pulsa el botón compruba que los datos esten bien (que haya y que sea string) y si es asi abre un nuevo formulario llamado 'ListarAlumnosFrom' al que le pasamos una variable (para saber si esta buscando o esta haciendo un listar sencillo, asi reutilizamos Formularios) y el valor introducido en el TextBox. Entonces en el código del 'ListarAlumnosForm' tengo lo siguiente:

Código:
Imports System.Data.Odbc
Imports System.Data.Common

Public Class ListarAlumnosForm
    Private AlumnoDataAdapter As OdbcDataAdapter
    Private m_DNI As String
    Private m_Opcion As String

    WriteOnly Property DNI() As String
        Set(ByVal value As String)
            m_DNI = value
        End Set
    End Property

    WriteOnly Property MiOpcion() As String
        Set(ByVal value As String)
            m_Opcion = value
        End Set
    End Property

    Sub New()

        ' Llamada necesaria para el Diseñador de Windows Forms.
        InitializeComponent()

        ' Agregue cualquier inicialización después de la llamada a InitializeComponent().
        AlumnoDataAdapter = ContenedorDataAdapter.CrearAlumnoDataAdapter()

    End Sub


    Private Sub ListarAlumnosForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If (m_Opcion = "buscar") Then
            Try
                My.Application.Conexion.Open()
                AlumnoDataAdapter.Fill(AlumnoDataSet.Tables("alumno"))
                AlumnoDataAdapter.SelectCommand.CommandText = "select * from ALUMNO where ""DNI""=""" & m_DNI & """"
                AlumnoBindingSource.DataSource = AlumnoDataAdapter.SelectCommand
                My.Application.Conexion.Close()
            Catch err As OdbcException
                MessageBox.Show("Parece que no se puede establecer la conexion" & vbCrLf & "Por favor revise la conexion, " & _
                "usuario, contraseña y vuelva a intentarlo", "Error al establecer la conexion", _
                MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        Else
            Try
                My.Application.Conexion.Open()
                AlumnoDataAdapter.Fill(AlumnoDataSet.Tables("alumno"))
                My.Application.Conexion.Close()
            Catch err As OdbcException
                MessageBox.Show("Parece que no se puede establecer la conexion" & vbCrLf & "Por favor revise la conexion, " & _
                "usuario, contraseña y vuelva a intentarlo", "Error al establecer la conexion", _
                MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        End If
    End Sub
End Class
Remanrcar que el listar(es decir, cuando ve que la variable m_Opcion no es 'buscar') funciona correctamente, por lo que no son fallos del DataSet ni de nombres porque creo que están bien.

Si alguien me puede ayudar se lo agradeceré muchísimo. Gracias de antemano...
  #2 (permalink)  
Antiguo 05/12/2009, 08:59
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Problema al buscar

Primero que si estás usando Datasets no necesitas abrir ni cerrar la conexión ya que internamente se hace este proceso.
Me parece que el error pasa porque estás llenando el Dataset AlumnoDataAdapter.Fill(AlumnoDataSet.Tables("alumn o")) y luego le asignas la consulta
y además al DataSource le estás asignando un string.

No he trabajado mucho con Datasets, pero me parece que el código debería ser el sgte:
Código vb.net:
Ver original
  1. AlumnoDataAdapter.SelectCommand.CommandText = "select * from ALUMNO where ""DNI""=""" & m_DNI & """"
  2. AlumnoDataAdapter.Fill(AlumnoDataSet.Tables("alumno"))
  3. AlumnoBindingSource.DataSource = AlumnoDataSet.Tables("alumno")

Espero te de una idea
__________________
Eduardo Peredo
Wigoin
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 14:28.