WPF DataGrid Visual Basic

  • WPF

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    WPF DataGrid Visual Basic

    Daten aus einer MySQL Tabelle in ein DataGrid schreiben:

    Ich bin am Verzweifeln und brauche Eure Hilfe. Es sollen Daten aus einer direkten Verbinung in ein DataGrid geschrieben werden. Es geht mir nur um ein -verständliches- Grundlagenwissen. Ich habe mir code zusammen gestückelt aber nichts funktioniert.
    [code=xml]
    <DataGrid VerticalAlignment="Top" HorizontalAlignment="Left"
    Margin="10,10,10,10"
    x:Name="DataGridTest"
    Loaded="DataGridTest_Loaded"
    AutoGenerateColumns="False">

    <DataGrid.Columns>
    <DataGridTextColumn Header="ID" x:Name="IDent"/>
    <DataGridTextColumn Header="Vorname" x:Name="VorN"/><DataGridTextColumn Header="Nachname" x:Name="NachN"/>
    </DataGrid.Columns>
    </DataGrid>
    [/code]
    [code=vbnet]
    Imports MySql.Data.MySqlClient
    Imports System.Data
    Public Class Test
    Dim cmd As New MySqlCommand
    Dim reader As MySqlDataReader
    Dim con As New MySqlConnectionPrivate Sub DataGridTest_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
    con.ConnectionString = "Server=xyz;" _& "password=xyz;" _
    & "database=xyz;" _
    & "UID=xyz;"
    cmd.Connection = con
    con.Open()
    cmd.CommandText = "SELECT * FROM ds_firma"
    Dim MyAdapter = New MySqlDataAdapter
    MyAdapter.SelectCommand = cmd
    Dim MyData = New DataTable
    MyAdapter.Fill(MyData)
    DataGridTest.DataContext = MyData
    'reader = cmd.ExecuteReader
    'Do While reader.Read
    ' DataGridTest.Items.Add(reader("ds_firma_nr") & " - " & reader("ds_firma_name"))
    'Loop
    'reader.Close()
    'con.Close()End Sub
    End Class
    [/code]
    Bitte, ich brauche eine verständliche Hilfe.
    Thomas
    Zwischenzeitlich habe ich mit dem Binding auseinandergesetzt. Trotzdem funktioniert es nicht. Warum nicht?

    VB.NET-Quellcode

    1. Imports MySql.Data.MySqlClient
    2. Imports System.Data
    3. Public Class Lektion_2
    4. 'Deklaration der Verbindungsvariablen:
    5. Dim username As String = ""
    6. Dim ip As String = ".kasserver.com"
    7. Dim db As String = ""
    8. Dim pw As String = ""
    9. Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
    10. Datenbindung()
    11. End Sub
    12. Private Sub Datenbindung()
    13. Dim ds As New DataSet()
    14. Dim SQL As String = "SELECT * FROM back_branche"
    15. Dim con As New MySqlConnection
    16. Dim cmd = New MySqlCommand
    17. Dim adapter As New MySqlDataAdapter(SQL, con.ConnectionString)
    18. con.ConnectionString = "Server=" & ip & "; password=" & pw & " ; user id =" & username & "; database= " & db & ";"
    19. con.Open()
    20. adapter.SelectCommand = cmd
    21. adapter.Fill(ds, "Branche")
    22. MessageBox.Show("")
    23. ListBox1.ItemsSource = ds
    24. Return
    25. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thomas2705“ ()

    schau dir mal das hier an


    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.Data.SqlClient
    2. Imports MySql.Data.MySqlClient
    3. Imports System.ComponentModel
    4. Public Class Form1
    5. Dim username As String = ""
    6. Dim ip As String = ""
    7. Dim pw As String = ""
    8. Dim db As String = "mysql"
    9. Dim bindingSource1 As New BindingSource()
    10. Dim dataAdapter As New SqlDataAdapter()
    11. Dim conn As MySqlConnection = New MySqlConnection
    12. Dim myAdapter As New MySqlDataAdapter
    13. Dim myCommand As New MySqlCommand
    14. Dim myDataReader As MySqlDataReader
    15. Dim myDataSet As New DataSet(db) ' DataSet-Instanz bilden
    16. Dim dtable As New DataTable("user") ' DataTable-Instanz bilden
    17. Dim SQLAbfrage As String = "select * from user"
    18. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    19. conn.ConnectionString = "server=" & ip & ";user id=" & username & ";password=" & pw & ";database=" & db & ";"
    20. alles_aus_db_lesen()
    21. End Sub
    22. Sub alles_aus_db_lesen()
    23. 'erst mal alles was im dvg ist löschen und entladen
    24. myDataSet.Tables.Clear()
    25. dtable.Clear()
    26. DataGridView1.Columns.Clear()
    27. DataGridView1.Rows.Clear()
    28. 'nun tragen wir mal neues ein
    29. Try
    30. conn.Open() ' Verbindung öffnen
    31. Catch myerror As MySqlException
    32. MsgBox("Keine Verbindung zur Datenbank : " & myerror.Message.ToString) ' Falls Fehler : Fehler anzeigen
    33. Exit Sub
    34. End Try
    35. myCommand.Connection = conn
    36. myCommand.CommandText = SQLAbfrage
    37. myAdapter.SelectCommand = myCommand
    38. myAdapter.Fill(myDataSet)
    39. Try
    40. myDataReader = myCommand.ExecuteReader()
    41. Catch ex As Exception
    42. MsgBox(ex.Message)
    43. End Try
    44. Dim i As Integer = 0
    45. DataGridView1.Columns.Add(0, "Host")
    46. DataGridView1.Columns.Add(1, "User")
    47. Do While myDataReader.Read()
    48. DataGridView1.Rows.Add(myDataReader("Host"), myDataReader("User"))
    49. Loop
    50. myDataReader.Close()
    51. conn.Close()
    52. DataGridView1.Columns(0).ReadOnly = False '// spalte id read only?
    53. DataGridView1.Columns(2).ReadOnly = False '// spalte id read only?
    54. DataGridView1.Sort(DataGridView1.Columns(0), ListSortDirection.Ascending) ' sortiere nach spalte id so das a das oberste ist (oder 1)
    55. End Sub
    56. End Class


    gibt dir alle user und den host aus der mysql user tabelle aus
    Hallo
    Danke für Deine Antwort aber der Code läuft nicht unter WPF bzw. einem Fenster. Es funktioniert lediglich mit Win Forms!
    Spätestens ab Zeile 29 geht fast nichts mehr.
    Außerdem gibt es DataGridView in Windows nicht.
    Thomas
    geile fehlermeldung
    Spätestens ab Zeile 29 geht fast nichts mehr.


    wenn du dich schon mit wpf beschäftigst dann nimm nicht

    [VB 2010] WPF DataGrid Visual Basic
    als topic wenn du keine naheliegenden
    antworten möchtest die auf dem selben framework beruhen, gleichzeitig aber nur C&P antworten für
    wpf möchtest.

    und datagridview gibt es natürlich unter windows vielleicht musst du bisl basteln bei wpf
    ( von wpv war in deinem einleitungspost nix zu lesen sry ) :D

    blogs.msdn.com/b/mhendersblog/archive/2005/10/03/476438.asp
    geekswithblogs.net/lorint/archive/2006/09/09/90740.aspx
    meinews.niuz.biz/datagridview-t321534.html?s=&amp;
    entwickler.com/itr/online_arti…om,id,882,nodeid,351.html

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Triple-Axe“ ()

    Guten Abend
    Ich wollte Dich mit meiner Antwort nicht verärgern aber ich nahm an das es bisher ersichtlich war dass es sich um eine WPF Anwendung handelt.
    Zwischenzeitlich habe ich mit damit etwas beschäftigt:
    Es handelt sich um eine WPF Anwendung.
    Es soll eine MySQL Tabelle geladen werden.
    Die Daten sollen in einem GridView angzeigt werden.

    Folgender XAML Code durch Darstellung des GridView:

    XML-Quellcode

    1. <Grid>
    2. <ListView ItemsSource="{Binding}">
    3. <ListView.View>
    4. <GridView>
    5. <GridViewColumn DisplayMemberBinding="{Binding Path=Branche}"/>
    6. </GridView>
    7. </ListView.View>
    8. </ListView>
    9. </Grid>


    Folgender vb Code zum Laden der Daten:

    VB.NET-Quellcode

    1. Imports System.Data.SqlClient
    2. Imports MySql.Data.MySqlClient
    3. Imports System.Data
    4. Public Class Lekton_05
    5. Dim cmd As New MySqlCommand
    6. Dim reader As MySqlDataReader
    7. Dim con As New MySqlConnection
    8. Dim username As String = ""
    9. Dim ip As String = ".kasserver.com"
    10. Dim db As String = ""
    11. Dim pw As String = ""
    12. Dim adapter As New MySqlDataAdapter
    13. Dim ds As DataSet = New DataSet
    14. 'Dim Builder As MySqlCommandBuilder = New MySqlCommandBuilder(adapter)
    15. Private Sub Window_Initialized(ByVal sender As System.Object, ByVal e As System.EventArgs)
    16. Try
    17. 'Verbindung zur Datenbank erstellen:
    18. con.ConnectionString = "Server=" & ip & "; password=" & pw & " ; user id =" & username & "; database= " & db & ";"
    19. adapter.SelectCommand = New MySqlCommand("SELECT * FROM back_branche", con)
    20. cmd.Connection = con
    21. con.Open()
    22. adapter.Fill(ds)
    23. Catch ex As Exception
    24. MessageBox.Show(ex.Message)
    25. End Try
    26. End Sub
    27. End Class


    back_branche ist die Tabelle. In dieser befindet sich eine einzige Spalte: "branche" Der Inhalt dieser einzigen Spalte soll angezeigt werden. Aber das tut es nicht. Wo ist der Haken in diesem :cursing: Code?