Foros del Web » Programando para Internet » ASPX (.net) »

Problema con consulta por ide

Estas en el tema de Problema con consulta por ide en el foro de ASPX (.net) en Foros del Web. Tengo el siguiente problema, no se en que fallo, al seleccionar en un DropDownList, que abajo aparesca su contenido, un label y caja de texto ...
  #1 (permalink)  
Antiguo 03/02/2008, 17:04
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Pregunta Problema con consulta por ide

Tengo el siguiente problema, no se en que fallo, al seleccionar en un DropDownList, que abajo aparesca su contenido, un label y caja de texto de acuerdo con el procedure que estoy llamando en el metodo de la clase cls_color

Código:
Private Sub ddl_ide_col_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddl_ide_col.SelectedIndexChanged

        Dim obj_col As New cls_color
        Dim obj_data_table As New DataTable

        With obj_col
            .ide_col = Val(ddl_ide_col.SelectedItem.Value.ToString)
            obj_data_table = .buscar_x_ide_col.Tables("usuario")
        End With

        If obj_data_table.Rows.Count = 0 Then
            Label1.Text = "error"
        Else
            Label1.Text = "oky"
            Dim obj_data_row As DataRow
            For Each obj_data_row In obj_data_table.Rows
                txt_nom_col.Text = obj_data_row("nom_col")
                lbl_ide_col.Text = obj_data_row("ide_col")
            Next
        End If

    End Sub

---------

Código:
Imports System.Data.SqlClient

Public Class cls_color

    Public ide_col As Integer
    Public nom_col As String

    Public Function buscar_x_ide_col() As DataSet

        Dim obj_conexion As New cls_conexion
        Dim obj_command As New SqlCommand

        obj_command.Connection = obj_conexion.obj_SqlConnection
        obj_command.CommandType = CommandType.StoredProcedure
        obj_command.CommandText = "usp_color_buscar_x_ide_col"

        obj_command.Parameters.Add(New SqlParameter("@ide_col", SqlDbType.Int))
        obj_command.Parameters("@ide_col").Value = ide_col

        Dim obj_data_set As New DataSet
        Dim obj_data_adapter As New SqlDataAdapter(obj_command)

        obj_conexion.conexion()
        obj_data_adapter.Fill(obj_data_set, "color")
        obj_conexion.desconexion()
        buscar_x_ide_col = obj_data_set

    End Function


End Class
---------- procedure

Código:
create procedure usp_color_buscar_x_ide_col
@ide_col int
as
select ide_col, nom_col from color where ide_col=@ide_col
------------

alguien podria decirme cual es el error ?? el procedure ni la clase creo que sean el problema, el problema esta en la aplicación :S en que erro, por favor respondan
  #2 (permalink)  
Antiguo 03/02/2008, 17:08
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Pregunta Re: Problema con consulta por ide

el problema es en la linea:

Código:
If obj_data_table.Rows.Count = 0 Then
---------------

Código:
Error de servidor en la aplicación '/asp.net/conejo_venta'.
--------------------------------------------------------------------------------

Referencia a objeto no establecida como instancia de un objeto. 
Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código. 

Detalles de la excepción: System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.

Error de código fuente: 


Línea 50:         End With
Línea 51: 
Línea 52:         If obj_data_table.Rows.Count = 0 Then
Línea 53:             Label1.Text = "error"
Línea 54:         Else
 

Archivo de origen: D:\www\asp.net\conejo_venta\frm\frm_ges_col.aspx.vb    Línea: 52 

Seguimiento de la pila: 


[NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.]
   conejo_venta.WebForm1.ddl_ide_col_SelectedIndexChanged(Object sender, EventArgs e) in D:\www\asp.net\conejo_venta\frm\frm_ges_col.aspx.vb:52
   System.Web.UI.WebControls.ListControl.OnSelectedIndexChanged(EventArgs e)
   System.Web.UI.WebControls.DropDownList.System.Web.UI.IPostBackDataHandler.RaisePostDataChangedEvent()
   System.Web.UI.Page.RaiseChangedEvents()
   System.Web.UI.Page.ProcessRequestMain()

--------------------------------------------------------------------------------
Información de versión: Versión de Microsoft .NET Framework:1.1.4322.573; Versión de ASP.NET:1.1.4322.573
  #3 (permalink)  
Antiguo 04/02/2008, 05:42
Avatar de Javier Santamaria  
Fecha de Ingreso: julio-2007
Mensajes: 296
Antigüedad: 16 años, 9 meses
Puntos: 1
Re: Problema con consulta por ide

Estas asignado a un datatable un dataset. Son controles distintos, al igual que no puedes asignar a un textbox una label.

Saludos
  #4 (permalink)  
Antiguo 06/02/2008, 13:14
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Pregunta Re: Problema con consulta por ide

me indicas que mi error es en:

Código:
obj_data_table = .buscar_x_ide_col.Tables("usuario")
cual seria la forma mas adecuada de hacerlo?, espero tu respuesta, gracias..
  #5 (permalink)  
Antiguo 07/02/2008, 05:14
Avatar de Javier Santamaria  
Fecha de Ingreso: julio-2007
Mensajes: 296
Antigüedad: 16 años, 9 meses
Puntos: 1
Re: Problema con consulta por ide

Perdona, no vi que asignabas le asignabas una tabla del dataset. Mi respuesta no tiene sentido ahora.

Ahora releyendo todo me doy cuenta de esto:

Public Function buscar_x_ide_col() As DataSet
...
obj_data_adapter.Fill(obj_data_set, "color")
...
End function

Private Sub ddl_ide_col_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddl_ide_col.SelectedIndexChanged
...
With obj_col
.ide_col = Val(ddl_ide_col.SelectedItem.Value.ToString)
obj_data_table = .buscar_x_ide_col.Tables("usuario")
End With
...
End sub

No se si tendra algo que ver pero a lo mejor es que la tabla usuario no existe en tu dataset.

Por otro lado porque no en vez de crear una funcion que te devuelva un dataset, creas un porcedimiento donde le pases por referencia el datatable y te lo devuelva lleno?

Simplemente seria pasarle el datatable obj_data_table y en lugar de hacer esto:

obj_data_adapter.Fill(obj_data_set, "color")

haces esto:

obj_data_adapter.Fill(obj_data_table)

Ya me cuentas, saludos
  #6 (permalink)  
Antiguo 08/02/2008, 10:10
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Re: Problema con consulta por ide

hola hola, Javier Santamaria, en primer lugar disculparme por no tener fijado bien mi problema, creo que te hice perder un poco de tiempo ya que el error era mio, al momento de obtener la tabla del data set (obj_col.buscar_x_ide_col("usuario")) llamaba a la atabla usuario, y deberia ser a la tabla color, vaya error.

por tratar de adaptar un poco vbbasic2k5 con asp.net, pero me sirve de lección, te agradesco el seguimiento ...
  #7 (permalink)  
Antiguo 11/02/2008, 08:31
Avatar de Javier Santamaria  
Fecha de Ingreso: julio-2007
Mensajes: 296
Antigüedad: 16 años, 9 meses
Puntos: 1
Re: Problema con consulta por ide

Nada, para eso estamos.

Saludos
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 08:05.