Autor Tema: Como obtener el valor de un dato especifico dentro de un DataSet??? VB.Net  (Leído 37005 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado XtremeH

  • The Communiter-
  • *
  • Mensajes: 1960
  • We must fight very hard, or die trying...
Amigos communiters, tratare de explicar lo mejor posible mi problema para ver si alguno de ustedes me puede ayudar.

Tengo un Combobox, y lo lleno de la siguiente manera:

Código: [Seleccionar]

Dim da As SqlDataAdapter
        da = New SqlDataAdapter("select * from tbl_Frutas order by 'nombre_fruta' asc", cn)

        Dim ds As DataSet
        ds = New DataSet
        ds.Tables.Add("tbl_Frutas")
        da.Fill(ds.Tables("tbl_Frutas"))

        ' Asignar la fuente al ComboBox
        cmbFruta.DataSource = ds.Tables("tbl_Frutas")
        cmbFruta.DisplayMember = "nombre_fruta"
        cmbFruta.ValueMember = "nombre_fruta"


Con eso, en el combobox puedo seleccionar cualquier fruta de la lista. Ahora bien, lo que quiero hacer es que una vez seleccionada la fruta, quiero almacenar en un textbox los demas campos de la tabla de esa fruta, como por ejemplo el ID, el PRECIO o la CANTIDAD.

He hecho esto:

Código: [Seleccionar]

Dim da As SqlDataAdapter
        da = New SqlDataAdapter("select * from tbl_Frutas", cn)

        Dim ds As DataSet
        ds = New DataSet
        ds.Tables.Add("tbl_Frutas")
        da.Fill(ds.Tables("tbl_Frutas"))


Esta tabla frutas a la que el codigo se refiere,  es una tabla que iria mas o menos asi:

IDNombrePrecioCantidad
01Manzana24
2Pera45
3Naranja89

Mi gran duda es, como puedo almacenar en un Textbox el precio de la naranja, si en el combobox elegi la naranja por ejemplo.

Ya llene el DataSet, y lo que se me ha ocurrido es algo asi como:

Código: [Seleccionar]
  sAuxiliar = ds.Tables("tbl_Frutas").Rows -----

Pero de alli ya no le hallo. Espero que si alguien puede ayudarme, lo haga, le agradecere mucho  :thumbsup:

Desconectado tekun

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3221
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re:Como obtener el valor de un dato especifico dentro de un DataSet??? VB.Net
« Respuesta #1 : noviembre 20, 2009, 11:49:12 am »
pues tengo buenas noticias.... hay muchas formas...


primero no se si me equivoque pero no tendrías que estar Llenando el dataSet dos veces, con una vez es suficiente para lo que queres...

me imagino que el campo ID no se repite en la tabla frutas... siendo correcto, maneja el evento valuechanged del comboBox
creando una dataView del dataSet que le pasas al comboBox, filtrando el ValueSelected del comboBox


y del dataView creado mostrar lo que necesitas en el textBox...
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado Darkness

  • The Communiter-
  • *
  • Mensajes: 2147
  • The Darkness
    • Diseño y Programaciòn Web Profesional
Re:Como obtener el valor de un dato especifico dentro de un DataSet??? VB.Net
« Respuesta #2 : noviembre 20, 2009, 11:52:58 am »
Ejemplo... yo hagoe so pero para combos dependientes


OK. cuando selecciones una fruta en el Combo box en el evento CmbFruta_SelectedIndexChanged

Citar
Dim AdapterDpto As New DataAdapter("SELECT * FROM " & BaseDatos & ".MUNICIPIO WHERE DEPTO = '" & DeptoBuscar & "'", MyConex)

        Dim CDataset As New DataSet()
        MyConex.Open()
        AdapterDpto.Fill(CDataset, "MUNICIPIOS")
        MyConex.Close()

        Dim oTabla As DataTable
        oTabla = CDataset.Tables("MUNICIPIOS")

        Dim FilaMpio As DataRow
        For Each FilaMpio In oTabla.Rows
            Me.CmbMpio.Items.Add(Trim(FilaMpio.Item("NOMBRE")))
        Next

En tu caso seria enves de vaciar en el combo vacialo en un TextBox
Me.textbox.Items.Add(Trim(FilaMpio.Item("Campo")))

esta es la forma adaptable a tu ejemplo...

la otra seria como dice tekum...
« Última Modificación: noviembre 20, 2009, 11:55:54 am por Darkness »
La Muerte Simplemente es el Despertar de Un Sueño Lleno de Falsedades e hipocrecias.
"Larga Vida Al Heavy Metal"

Iron Maiden Discografia DD

Desconectado XtremeH

  • The Communiter-
  • *
  • Mensajes: 1960
  • We must fight very hard, or die trying...
Re:Como obtener el valor de un dato especifico dentro de un DataSet??? VB.Net
« Respuesta #3 : noviembre 20, 2009, 12:05:07 pm »
primero no se si me equivoque pero no tendrías que estar Llenando el dataSet dos veces, con una vez es suficiente para lo que queres...

Lo hago 2 veces, porque primero necesito llenarla en el evento load del formulario para qm e aparezcan los datos en el combobox... la segunda vez lo hago en el evento valuechanged del combobox para que me vaya cambiando llos valores segun el elemento seleccionado.. creo que hay otra forma de hacerlo mas rapido, pero no recuerdo y no tengo como q mucho tiempo para andar estudiando eso ahorita jeje

Estoy probando como me dijeron..hay les cuento como me fue

Desconectado Darkness

  • The Communiter-
  • *
  • Mensajes: 2147
  • The Darkness
    • Diseño y Programaciòn Web Profesional
Re:Como obtener el valor de un dato especifico dentro de un DataSet??? VB.Net
« Respuesta #4 : noviembre 20, 2009, 12:10:11 pm »
Lo hago 2 veces, porque primero necesito llenarla en el evento load del formulario para qm e aparezcan los datos en el combobox... la segunda vez lo hago en el evento valuechanged del combobox para que me vaya cambiando llos valores segun el elemento seleccionado.. creo que hay otra forma de hacerlo mas rapido, pero no recuerdo y no tengo como q mucho tiempo para andar estudiando eso ahorita jeje

Estoy probando como me dijeron..hay les cuento como me fue

A lo que se refiere tekun es que solamente necesitas llenar una vez el Dataset ya sea en el Load o cualquier otro lado
luego solamente agregas el valor al Texbox cada ves q cambie el index del Combo

TEXTBOX.TEXT = CDataset.Tables("NOMBRE").Rows(CmbbOX.SelectedIndex)("CAMPO")


en mi caso lleno dos pues uno es para Departamentos y otro es para Municipios, osea un conjunto de registros diferentes para cada Combobox
« Última Modificación: noviembre 20, 2009, 12:12:01 pm por Darkness »
La Muerte Simplemente es el Despertar de Un Sueño Lleno de Falsedades e hipocrecias.
"Larga Vida Al Heavy Metal"

Iron Maiden Discografia DD

Desconectado tekun

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3221
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re:Como obtener el valor de un dato especifico dentro de un DataSet??? VB.Net
« Respuesta #5 : noviembre 20, 2009, 12:11:29 pm »
ijole darkness

OK. cuando selecciones una fruta en el Combo box en el evento CmbFruta_SelectedIndexChanged
Citar
        Dim oTabla As DataTable
        oTabla = CDataset.Tables("MUNICIPIOS")

        Dim FilaMpio As DataRow
        For Each FilaMpio In oTabla.Rows
            Me.CmbMpio.Items.Add(Trim(FilaMpio.Item("NOMBRE")))
        Next
En tu caso seria enves de vaciar en el combo vacialo en un TextBox
Me.textbox.Items.Add(Trim(FilaMpio.Item("Campo")))

Con ánimos de ayudarte, te sugiero que utilices el código de Mikau para llenar los comboBox, es lo más correcto y hasta te ayuda al performance de tu aplicación....

no lo viste vea...

y Mikau no quiere cargar otra tabla según lo ingresado... si no saber que otro campo tiene el registro seleccionado...



Lo hago 2 veces, porque primero necesito llenarla en el evento load del formulario para qm e aparezcan los datos en el combobox... la segunda vez lo hago en el evento valuechanged del combobox para que me vaya cambiando llos valores segun el elemento seleccionado.. creo que hay otra forma de hacerlo mas rapido, pero no recuerdo y no tengo como q mucho tiempo para andar estudiando eso ahorita jeje

no lo hagas dos veces entonces... con la primera vez que llenas el dataSet basta, porque haces
Código: [Seleccionar]
select * from frutas
otra más rápida es así.
en el evento ValueChanged del comboBox haz lo siguiente:
Código: [Seleccionar]
textboxPrecio.text = dataset.tables("tabla").Rows(sender.SelectedIndex).Item("precio_fruta")
es lo más rápido que se me ocurre, pero si llenas dos veces el dataSet estas mal.
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado Darkness

  • The Communiter-
  • *
  • Mensajes: 2147
  • The Darkness
    • Diseño y Programaciòn Web Profesional
Re:Como obtener el valor de un dato especifico dentro de un DataSet??? VB.Net
« Respuesta #6 : noviembre 20, 2009, 12:16:32 pm »
Citar
Con ánimos de ayudarte, te sugiero que utilices el código de Mikau para llenar los comboBox, es lo más correcto y hasta te ayuda al performance de tu aplicación....

no lo viste vea...

y Mikau no quiere cargar otra tabla según lo ingresado... si no saber que otro campo tiene el registro seleccionado...

Tenes razon, es que ese codigo es uno de los primeros que hice  :D .
ya sabes que al principio tenes que inventar y luego te vas desarrollando y optimizando!!!
Y seguir viendo nuevas formas pues para aprender estamos...

ahora ya lo hago de otra forma

CmbSubcategoria.DataSource = CDatasetSubCats.Tables("SUBCATS")
CmbSubcategoria.DisplayMember = CDatasetSubCats.Tables("SUBCATS").Columns("NOMBRE").ToString
CmbSubcategoria.ValueMember = CDatasetSubCats.Tables("SUBCATS").Columns("SUBCAT").ToString
« Última Modificación: noviembre 20, 2009, 12:23:22 pm por Darkness »
La Muerte Simplemente es el Despertar de Un Sueño Lleno de Falsedades e hipocrecias.
"Larga Vida Al Heavy Metal"

Iron Maiden Discografia DD

Desconectado XtremeH

  • The Communiter-
  • *
  • Mensajes: 1960
  • We must fight very hard, or die trying...
Re:Como obtener el valor de un dato especifico dentro de un DataSet??? VB.Net
« Respuesta #7 : noviembre 20, 2009, 12:20:57 pm »
Muchas gracias amigos... Voy a probar y les cuento en la noche como me salio. Muy atentos men  :thumbsup: Se les agradece