Problema con combo

02/06/2005 - 16:16 por Roberto Carlos | Informe spam
que tal, quisiera que me ayuden, tengo un combo llenado con datos de un xml,
solo que en el combo me muestra lo siguiente system.data.DataRowView y yo
quiero que muestre un folio, el codigo es el siguiente:

Imports System.Data

Imports System.Data.SqlClient

Imports System.IO

Imports System.Xml

Imports System.Text

Imports System.Globalization

Imports Microsoft.WindowsCE.Forms

Private dvFolios As System.Data.DataView

Private data As System.Data.DataSet

Private Sub loadXMLData()

Try

data = New DataSet("ds")

Dim fs As New FileStream("\My Documents\verinspda.xml", FileMode.Open)

Dim xr As New XmlTextReader(fs)

data.ReadXml("\My Documents\verinspda.xml")

Me.combobox_folios.DataSource = data.Tables(0)



Me.combobox_folios.DisplayMember = "folio"

Catch e As System.IO.FileNotFoundException

MessageBox.Show("El archivo XML no es encontrado. Por favor seleccione un
nombre diferente.")

Catch e As XmlException

End Try

End Sub

Private Sub ComboBox_Folios_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
combobox_folios.SelectedIndexChanged

If combobox_folios.SelectedIndex >= 0 Then

Dim strRF As String

Dim row As DataRowView CType(combobox_folios.Items(combobox_folios.SelectedIndex), DataRowView)

Me.combobox_folios.DisplayMember = "folio"

Me.TextBox1.Text = row("tipo")

Me.TextBox2.Text = row("Folio")

End If

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

loadXMLData()

End Sub

End Class



De antemano muchas gracias..
 

Leer las respuestas

#1 Elmer Carías
07/06/2005 - 20:07 | Informe spam
hola,

veo una cosa en tu codigo, en el SelectedIndexChanged le has puesto que
setee los valores de dos TextBox, deberias revisar cuales son los nombres de
las columnas de tu origen de datos, ya que en el loadXMLData le dices al
ComboBox que el DisPlayMember es "folio" pero en el SelectionIndexChanged le
dices al textbox esto Me.TextBox2.Text = row("Folio"), si notas utilizas la
palabra folio con y sin niciar con mayuscula, por lo que te recuerdo que es
Case Sensitive,

Ahora, la otra recomendaciónq ue te hago es que en lugar de decirle al
datasource del COmboBox que sea data.tables(0) utilizes lo siguiente :
New DataView(data.Tables(0))

que asi lo dice el ejemplo de Inventory, que supongo que de ahi has tomado
base para hacer tu aplicacion.

Atte. Elmer Carías
El Salvador, CentroAmerica
DCE 3
MSN:






"Roberto Carlos" wrote in message
news:
que tal, quisiera que me ayuden, tengo un combo llenado con datos de un
xml,
solo que en el combo me muestra lo siguiente system.data.DataRowView y yo
quiero que muestre un folio, el codigo es el siguiente:

Imports System.Data

Imports System.Data.SqlClient

Imports System.IO

Imports System.Xml

Imports System.Text

Imports System.Globalization

Imports Microsoft.WindowsCE.Forms

Private dvFolios As System.Data.DataView

Private data As System.Data.DataSet

Private Sub loadXMLData()

Try

data = New DataSet("ds")

Dim fs As New FileStream("\My Documents\verinspda.xml", FileMode.Open)

Dim xr As New XmlTextReader(fs)

data.ReadXml("\My Documents\verinspda.xml")

Me.combobox_folios.DataSource = data.Tables(0)



Me.combobox_folios.DisplayMember = "folio"

Catch e As System.IO.FileNotFoundException

MessageBox.Show("El archivo XML no es encontrado. Por favor seleccione un
nombre diferente.")

Catch e As XmlException

End Try

End Sub

Private Sub ComboBox_Folios_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
combobox_folios.SelectedIndexChanged

If combobox_folios.SelectedIndex >= 0 Then

Dim strRF As String

Dim row As DataRowView > CType(combobox_folios.Items(combobox_folios.SelectedIndex), DataRowView)

Me.combobox_folios.DisplayMember = "folio"

Me.TextBox1.Text = row("tipo")

Me.TextBox2.Text = row("Folio")

End If

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

loadXMLData()

End Sub

End Class



De antemano muchas gracias..


Preguntas similares