none
Problem mit ComboBox und DataSet aus XML

    Frage

  • Hallo,

    Ich hänge gerade bei einem Problem was das Binden von Datan an eine ComboBox angeht.

    Ich habe ein XML File was wie folgt aussieht:

    <?xml version="1.0" encoding="utf-8" ?>
    <Connections>
      <Connection name="test">
        <FTP_Adress>
        </FTP_Adress>
        <FTP_Port>21</FTP_Port>
        <FTP_User>Test</FTP_User>
        <FTP_Password>�]OaU�,[</FTP_Password>
      </Connection>
      <Connection name="test 2">
        <FTP_Adress>
        </FTP_Adress>
        <FTP_Port>21</FTP_Port>
        <FTP_User>Test2</FTP_User>
        <FTP_Password>�]OaU�,[</FTP_Password>
      </Connection>
      <Connection name="test 3">
        <FTP_Adress>
        </FTP_Adress>
        <FTP_Port>21</FTP_Port>
        <FTP_User>test3</FTP_User>
        <FTP_Password>�]OaU�,[</FTP_Password>
      </Connection>
    </Connections>

    Nun binde ich dies als DataSet an eine Combobox und zwar so:

                Dim _dsData As DataSet = New DataSet()
                _dsData.ReadXml(GetApplicationPath() + "FTP_Connections.xml")
                cbFTP_Connection.DataSource = _dsData.Tables("Connection")
                cbFTP_Connection.DisplayMember = "name"

    Dies funktioniert auch soweit.

    Nun meine Frage, wenn ein Eintrag aus der ComboBox gewählt wird möchte ich die dazugehörigen Daten aus dem DataSet bekommen um mit diesen arbeiten zu können.

    Wie kann ich dies bewerkstelligen um an die zu dem gewählten Eintrrag gehörigen Daten aus dem DataSet zu kommen?

    Da ich noch ziemlich neu in VB.NET bin hoffe ich ihr könnt mir helfen.

    Entwickeln tu ich mit VS 2010 unter .NET 3.5

    Danke und Grüße,

    Nico

    Freitag, 7. Dezember 2012 22:44

Antworten

  • Hi Nico,
    Du kannst Dir das SelectedItem holen, welches vom Typ dataRowView ist. Nachfolgend eine Demo:
    Public Class Form2
    
      Private cbFTP_Connection As New ComboBox With {.Dock = DockStyle.Top}
    
      Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.Controls.Add(cbFTP_Connection)
    
        Dim _dsData As DataSet = New DataSet()
        _dsData.ReadXml("FTP_Connections.xml")
        cbFTP_Connection.DataSource = _dsData.Tables("Connection")
        cbFTP_Connection.DisplayMember = "name"
    
        AddHandler cbFTP_Connection.SelectedIndexChanged, AddressOf cb_selectionChanged
      End Sub
    
      Private Sub cb_selectionChanged(sender As Object, e As EventArgs)
        Dim drv As DataRowView = CType(cbFTP_Connection.SelectedItem, DataRowView)
        MsgBox(String.Format("Port: {0}", drv("FTP_Port")))
      End Sub
    
    End Class
    

    --
    Viele Gruesse
    Peter

    Sonntag, 9. Dezember 2012 08:24

Alle Antworten