.
Anmeldung | Registrieren | Hilfe
in Suchen

Data-Binding an eine Textbox bzw DateTimePicker, comboBox

Letzter Beitrag 02. Feb 2017 15:53 von dh1sbg. 1 Antworten.
Seite 1 von 1 (2 Treffer)
Beiträge sortieren: Zurück Weiter
  • 30. Jan 2017 20:22

    • dh1sbg
    • Top 150 Mitwirkender
    • Registriert am 21. Apr 2010
    • Beiträge 8
    • Punkte 95

    Data-Binding an eine Textbox bzw DateTimePicker, comboBox

    Hallo,

    ich versuche mich gerade, auf einem Formular mit TextBoxen, DateTimePicker und ComboBox die Daten einer Datenbank so einzulesen, dass dann später mit dataAdapter1.update (cType(bindingsource1.datasource,Datatable) ein Update der Datenbank vollzogen werden kann

    conn.ConnectionString = "Dsn=mis" ' eine Mysql Datenbank via ODBC

    Dim strSql As String = "SELECT * FROM tbl_kal_termine where terID = 1"

            DataAdapter1 = New OdbcDataAdapter(strSql, conn)  

            'Erstelle einen Commandbuilder für Insert, Update und Delete
            Dim commandBuuilder1 As New OdbcCommandBuilder(DataAdapter1)

            ' Neue dataTable erzeugen und an die Binding Source binden
            Dim myTable As New DataTable

            DataAdapter1.Fill(myTable)

            If myTable.Rows.Count <> 0 Then
                Me.BindingSource1.DataSource = myTable

                For Each row In myTable.Rows
                    For Each column In myTable.Columns

                   
                        Console.Write(vbTab & row(column.ColumnName).ToString)


                    Next
                Next row
            Else
                MsgBox("keine Daten")
            End If


    Im Augenblick kann ich jedes Feld mit Name und Inhalt auslesen.
    Wie binde ich nun ein Textfeld ein?


    Liebe Grüße
    Bruno
    • IP-Adresse ist Registriert
  • 02. Feb 2017 15:53 Antwort zu

    • dh1sbg
    • Top 150 Mitwirkender
    • Registriert am 21. Apr 2010
    • Beiträge 8
    • Punkte 95

    Data-Binding an eine Textbox bzw DateTimePicker, comboBox

    Soweit klappt es:

    public Class TEST
        Private BindingSource As New BindingSource
        Private DataAdapter1 As New Odbc.OdbcDataAdapter
        Dim myTable As New DataTable
        Dim conn As New OdbcConnection
    Private Sub frmAnzeigen_Load(sender As Object, e As EventArgs) Handles MyBase.Load
              Try
                'build up a connection
                conn.ConnectionString = "Dsn=mis"
                conn.Open()
            Catch ex As Exception
                MsgBox("Error on Connection" & vbCrLf & ex.Message)
                Me.Close()
            End Try
    
            strSql = "SELECT * FROM tbl_kal_termine "
            DataAdapter1 = New OdbcDataAdapter(strSql, conn)
            DataAdapter1.Fill(myTable)
    
            txtID.DataBindings.Add("TEXT", myTable, "terID")
            txtVon.DataBindings.Add("TEXT", myTable, "terVon")
            txtBis.DataBindings.Add("TEXT", myTable, "terBis")
            txtWas.DataBindings.Add("TEXT", myTable, "terWas")
            txtWo.DataBindings.Add("TEXT", myTable, "terWo")
            txtMehr.DataBindings.Add("TEXT", myTable, "terKommentar")
    
    '       und mehr Code um ein DataGridView zu füllen
    
    end sub
    
     Private Sub dataGridView1_CellClick(ByVal sender As Object,
        ByVal e As DataGridViewCellEventArgs) _
        Handles DataGridView1.CellClick
            Dim cell As String
            Try
                cell = DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value
    
            Catch ex As Exception
                'MsgBox("empfty cell")
                Exit Sub
            End Try
            If cell.Substring(0, cell.IndexOf("#")) > 0 Then
                Stop   ' hier fehlt noch Code.
            End If
    
            '------------------------------------------------------------
    
            myTable.Clear()
    
            Dim strSql As String = "SELECT * FROM tbl_kal_termine where terID =  " & cell.Substring(0, cell.IndexOf("#"))
    
            DataAdapter1 = New OdbcDataAdapter(strSql, conn)
            DataAdapter1.Fill(myTable)
    
            If myTable.Rows.Count <> 0 Then
                Me.BindingSource1.DataSource = myTable
    
    
               ' was ist in myTable drin?
                'For Each row In myTable.Rows
                '    For Each column In myTable.Columns
                '        Console.Write(vbTab & row(column.ColumnName).ToString)
                '    Next
                'Next row
            Else
                MsgBox("keine Daten")
            End If
    
    end sub
    
    '===========================================================
        Private Sub Update_Click(sender As Object, e As EventArgs) Handles Update.Click
            ' to test what is in row and each cell in the table myTable
            Dim txt As String = ""
            For Each row In myTable.Rows
                For Each column In myTable.Columns
                    Console.Write(vbTab & row(column.ColumnName).ToString)
                    txt = row(column.ColumnName).ToString
                Next
            Next row
            '>>>>>>>>>>>>>>>>> Alles OK <<<<<<<<<<<<<<<<<<<<<<<<<<<<
            ' try to do an update to the database
            Dim commandBuilder1 As New OdbcCommandBuilder(DataAdapter1)
    
            Me.BindingSource1.DataSource = myTable
    
            DataAdapter1.Update(CType(Me.BindingSource1.DataSource, DataTable))
        End Sub


    Nach dem Klick auf die Schaltfläche Update sollte eigentlich die Datenbank die neuen Daten halten.

    bis "Alles OK" sehe ich in der Tabelle myTable das, was ich erwarte, nämlich von Hand geänderte Daten.

    Nach "Alles OK" muss wohl noch ein Fehler sein - ich finde ihn nicht

    Sad

    Sorry, Bruno
    • IP-Adresse ist Registriert
Seite 1 von 1 (2 Treffer)

Regeln | Impressum