Textbox werden nicht mit Daten gefüllt


Bella_Isy

Erfahrenes Mitglied
Hallo Leute,

vielleicht weiß einer von euch rat.

Hier mein Code:
Code:
Module Module1

    Public Connection As System.Data.OleDb.OleDbConnection
    Public DS As System.Data.DataSet
    Public DV As System.Data.DataView
    Public DB As String = "medic2"
    Public Server As String = "ws-isabelle"
    Public Table As String = ""

End Module
Code:
Public Class frmChangeStructure
    Inherits System.Windows.Forms.Form

#Region " Vom Windows Form Designer generierter Code "

    Public Sub New()
        MyBase.New()

        ' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
        InitializeComponent()

        ' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen

    End Sub

    ' Die Form überschreibt den Löschvorgang der Basisklasse, um Komponenten zu bereinigen.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    ' Für Windows Form-Designer erforderlich
    Private components As System.ComponentModel.IContainer

    'HINWEIS: Die folgende Prozedur ist für den Windows Form-Designer erforderlich
    'Sie kann mit dem Windows Form-Designer modifiziert werden.
    'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
    Friend WithEvents btnOkay As System.Windows.Forms.Button
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.btnOkay = New System.Windows.Forms.Button
        Me.SuspendLayout()
        '
        'btnOkay
        '
        Me.btnOkay.Location = New System.Drawing.Point(128, 224)
        Me.btnOkay.Name = "btnOkay"
        Me.btnOkay.TabIndex = 0
        Me.btnOkay.Text = "Okay"
        '
        'frmChangeStructure
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(336, 273)
        Me.Controls.Add(Me.btnOkay)
        Me.Name = "frmChangeStructure"
        Me.Text = "von Dermoscope SQL zur neuen MediScope"
        Me.ResumeLayout(False)

    End Sub

#End Region

    Private Sub btnOkay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOkay.Click
        'erzeugen des Command
        Dim cmdAuslesen As System.Data.OleDb.OleDbDataAdapter
        Dim cmdUebernehmen As System.Data.OleDb.OleDbCommand

        Dim txtPatientID As New System.Windows.Forms.TextBox
        Dim txtName As New System.Windows.Forms.TextBox
        Dim txtVorname As New System.Windows.Forms.TextBox
        Dim txtGeburtsdatum As New System.Windows.Forms.TextBox
        Dim txtGeschlecht As New System.Windows.Forms.TextBox
        Dim txtDiagnosis As New System.Windows.Forms.TextBox
        Dim Datensatz As String

        Try
            'Verbindung herstellen
            Connection = New System.Data.OleDb.OleDbConnection( _
                  "provider=SQLOLEDB; database=" & DB & "; " & _
                  "Integrated Security=SSPI; server=" & Server & ";")
            'Command erzeugen 
            cmdAuslesen = New System.Data.OleDb.OleDbDataAdapter( _
                  "select DISTINCT PatientID, Name, Vorname, Geburtsdatum, Geschlecht, Diagnosis from Bild", Connection)
            'Datenset erzeugen und füllen
            DS = New System.Data.DataSet
            cmdAuslesen.Fill(DS, "Bild")
            DV = New DataView(DS.Tables("Bild"))


            'Datenbinden
            txtPatientID.DataBindings.Add("Text", DV, "PatientID")
            txtName.DataBindings.Add("Text", DV, "Name")
            txtVorname.DataBindings.Add("Text", DV, "Vorname")
            txtGeburtsdatum.DataBindings.Add("Text", DV, "Geburtsdatum")
            txtGeschlecht.DataBindings.Add("Text", DV, "Geschlecht")
            txtDiagnosis.DataBindings.Add("Text", DV, "Diagnose")
            Connection.Close()

            DB = "medicDB"
            Table = "PatientsTable"

            Me.BindingContext(DV).Position += 1

            'Wert in eine Variable schreiben
            Datensatz = txtPatientID.Text & "," & txtName.Text & "," & txtVorname.Text & "," & _
                        txtGeburtsdatum.Text & "," & txtGeschlecht.Text & "," & txtDiagnosis.Text

            

            cmdUebernehmen = New System.Data.OleDb.OleDbCommand
            cmdUebernehmen.CommandText = "INSERT INTO " & Table & _
                                         " (PatientID, Name, Vorname, Geburtsdatum, Geschlecht, Diagnosis)" & _
                                         " VALUES (" & Datensatz & " ); "
            cmdUebernehmen.Connection = Connection

            Connection.Open()
            cmdUebernehmen.ExecuteNonQuery()

            

        Catch ex As Exception
            MsgBox("Verbindung Fehlgeschlagen," & ControlChars.NewLine & _
                   "Grund: " & ex.Message)
        End Try
    End Sub
End Class
Jetzt mein Problem:

Die Textboxen die ich erzeugt habe werden an die Spalten der Table gebunden. Danach sollte man annehmen das die Textboxen einen Inhalt haben, aber dies ist nicht der Fall. Ich habe leider keine Ahnung wie ich jetzt an den Inhalt des DataSet DS bzw DataView DV ran komme. Ziel ist es das ich jeden einzeln Datensatz auslesen und weiter verarbeiten kann anschließen möchte ich den Datensatz löscchen.

Ich hoffe ich könnte mein Problem gut erläutern und ihr wisst jetzt was mich ärgert.

Gruß Isabelle
 

Bella_Isy

Erfahrenes Mitglied
Inhalt überprüfen eines Datasets

Ich habe die Textfelder ein wenig falsch gebunden. Jetzt habe ich ja die vermutung das das Dataset leer ist und garnicht richtig gefüllt worden ist. Wie kann ich dem den nachgehen.

Was kann ich machen um mir die Daten in dem Dataset was manuel erzeugt wird anzuschauen. (Nicht mit dem Assistenten erzeugt)

Isabelle

Hier noch mal der ausgebesserte Code

Code:
Public Class frmChangeStructure
    Inherits System.Windows.Forms.Form

    Private txtPatientID As TextBox
    Private txtName As TextBox
    Private txtVorname As TextBox
    Private txtGeburtsdatum As TextBox
    Private txtGeschlecht As TextBox
    Private txtDiagnosis As TextBox



#Region " Vom Windows Form Designer generierter Code "

    Public Sub New()
        MyBase.New()

        ' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
        InitializeComponent()

        ' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen
        SetUp()

    End Sub

    ' Die Form überschreibt den Löschvorgang der Basisklasse, um Komponenten zu bereinigen.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    ' Für Windows Form-Designer erforderlich
    Private components As System.ComponentModel.IContainer

    'HINWEIS: Die folgende Prozedur ist für den Windows Form-Designer erforderlich
    'Sie kann mit dem Windows Form-Designer modifiziert werden.
    'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
    Friend WithEvents btnOkay As System.Windows.Forms.Button
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.btnOkay = New System.Windows.Forms.Button
        Me.SuspendLayout()
        '
        'btnOkay
        '
        Me.btnOkay.Location = New System.Drawing.Point(128, 224)
        Me.btnOkay.Name = "btnOkay"
        Me.btnOkay.TabIndex = 0
        Me.btnOkay.Text = "Okay"
        '
        'frmChangeStructure
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(336, 273)
        Me.Controls.Add(Me.btnOkay)
        Me.Name = "frmChangeStructure"
        Me.Text = "von Dermoscope SQL zur neuen MediScope"
        Me.ResumeLayout(False)

        Me.txtPatientID = New TextBox
        Me.txtName = New TextBox
        Me.txtVorname = New TextBox
        Me.txtGeburtsdatum = New TextBox
        Me.txtGeschlecht = New TextBox
        Me.txtDiagnosis = New TextBox

        Me.txtPatientID.Hide()
        Me.txtName.Hide()
        Me.txtVorname.Hide()
        Me.txtGeburtsdatum.Hide()
        Me.txtGeschlecht.Hide()
        Me.txtDiagnosis.Hide()

        Me.Controls.Add(txtPatientID)
        Me.Controls.Add(txtName)
        Me.Controls.Add(txtVorname)
        Me.Controls.Add(txtGeburtsdatum)
        Me.Controls.Add(txtGeschlecht)
        Me.Controls.Add(txtDiagnosis)
    End Sub

#End Region
    Private Sub SetUp()
        Try
            'Verbindung herstellen
            Connection = New System.Data.OleDb.OleDbConnection( _
                  "provider=SQLOLEDB; database=" & DB & "; " & _
                  "Integrated Security=SSPI; server=" & Server & ";")
            'Command erzeugen 
            cmdAuslesen = New System.Data.OleDb.OleDbDataAdapter( _
                  "select DISTINCT PatientID, Name, Vorname, Geburtsdatum, Geschlecht, Diagnosis from Bild", Connection)
            'Datenset erzeugen und füllen
            DS = New System.Data.DataSet
            cmdAuslesen.Fill(DS, "Bild")
            'Datenbinden
            txtPatientID.DataBindings.Add(New Binding("Text", DS, "Bild.PatientID"))
            txtName.DataBindings.Add(New Binding("Text", DS, "Bild.Name"))
            txtVorname.DataBindings.Add(New Binding("Text", DS, "Bild.Vorname"))
            txtGeburtsdatum.DataBindings.Add(New Binding("Text", DS, "Bild.Geburtsdatum"))
            txtGeschlecht.DataBindings.Add(New Binding("Text", DS, "Bild.Geschlecht"))
            txtDiagnosis.DataBindings.Add(New Binding("Text", DS, "Bild.Diagnosis"))
            Connection.Close()
        Catch ex As Exception
            MsgBox("Verbindung Fehlgeschlagen," & ControlChars.NewLine & _
                   "Grund: " & ex.Message)
        End Try

    End Sub


    Private Sub btnOkay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOkay.Click

        Dim Datensatz As String

        Try

            DB = "medicDB"
            Table = "PatientsTable"

            Me.BindingContext(DS).Position += 1

            Dim test As String
            test = txtPatientID.Text.ToString

            'Wert in eine Variable schreiben
            Datensatz = txtPatientID.Text & "," & txtName.Text & "," & txtVorname.Text & "," & _
                        txtGeburtsdatum.Text & "," & txtGeschlecht.Text & "," & txtDiagnosis.Text

            cmdUebernehmen = New System.Data.OleDb.OleDbCommand
            cmdUebernehmen.CommandText = "INSERT INTO " & Table & _
                                         " (PatientID, Name, Vorname, Geburtsdatum, Geschlecht, Diagnosis)" & _
                                         " VALUES (" & Datensatz & " ); "
            cmdUebernehmen.Connection = Connection

            Connection.Open()
            cmdUebernehmen.ExecuteNonQuery()

        Catch ex As Exception
            MsgBox("Verbindung Fehlgeschlagen," & ControlChars.NewLine & _
                   "Grund: " & ex.Message)
        End Try
    End Sub
End Class