Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  VBasic / vb.net / vbs / wsh
  TextBox zu DGV / DGV zu XML und zurück

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  TextBox zu DGV / DGV zu XML und zurück (2190 mal gelesen)
Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


Sehen Sie sich das Profil von Dirk.B an!   Senden Sie eine Private Message an Dirk.B  Schreiben Sie einen Gästebucheintrag für Dirk.B

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2021/2022
CAD+T
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 06. Feb. 2014 07:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

··· Diskussionsforen · VB.NET - Ein- und Umsteiger

Sie sind aktuell nicht angemeldet. Funktionen: Einloggen  |  Neu registrieren  |  Suchen


VB.NET - Ein- und Umsteiger
TextBox.Text nach DGV / DGV in XML speichern und wieder laden 

Autor: hoff01
Datum: Heute, 07:25

--------------------------------------------------------------------------------

Guten Morgen zusammen,

ich zerbrech mir nun seit einigen Tagen den Kopf zu folgendem:

Auf einer Form habe ich TextBoxen, deren Werte ich in ein DGV (DataGridView) übernehmen möchte.
Die Inhalte des DGV sollen in eine XML Datei geschrieben werden.
Hintergrund, diese Werte aus der XML sollen von einer fremden Anwendung gelesen werden.

Um meine Daten zu bearbeiten muß ich auch wieder auf die Daten XML zugreifen, in meinem Programm
bearbeiten und wieder abspeichern.

Ich habe versucht mich durch die Vielzahl an Beiträgen zu diesem Thema durchzuarbeiten und habe
auch schon so einiges ausprobiert mit mehr oder weniger Erfolg.

Letzter Stand ist:
Nun kann ich zwar das DGV händisch Zelle für Zelle befüllen und über ein DataSet in die XML schreiben und wieder auslesen.

Code:

    Private dt As System.Data.DataTable

    Private Function getDataTable() As System.Data.DataTable
        Dim dt As New System.Data.DataTable("Zukaufteile")
        Dim col0 As System.Data.DataColumn = dt.Columns.Add("Teile-Nr", GetType( _
          System.String))
        col0.DefaultValue = String.Empty

        Dim col1 As System.Data.DataColumn = dt.Columns.Add("Anzahl", GetType( _
          System.String))
        col1.DefaultValue = String.Empty
        '....
        '....
        Dim col8 As System.Data.DataColumn = dt.Columns.Add("Einheitspreis", _
          GetType(System.String))
        col8.DefaultValue = String.Empty

        Return dt
    End Function


    Private Sub formatDataGridView(ByVal dgv As DataGridView)
        ' Datum formatieren:
        dgv.Columns.Remove("Teile-Nr")
        Dim tbc1 As New DataGridViewTextBoxColumn()
        tbc1.DataPropertyName = "Teile-Nr"
        tbc1.HeaderText = "Teile-Nr"
        tbc1.Width = 60
        'tbc1.DefaultCellStyle.Format = "d"
        tbc1.DefaultCellStyle.Alignment = _
          DataGridViewContentAlignment.MiddleLeft
        tbc1.DisplayIndex = 0
        dgv.Columns.Add(tbc1)
        '....
        '....
        dgv.Columns.Remove("Einheitspreis")
        Dim tbc9 As New DataGridViewTextBoxColumn()
        tbc9.DataPropertyName = "Einheitspreis"
        tbc9.HeaderText = "Einheitspreis"
        tbc9.Width = 40
        'tbc9.DefaultCellStyle.Format = "d"
        tbc9.DefaultCellStyle.Alignment = _
          DataGridViewContentAlignment.MiddleLeft
        tbc9.DisplayIndex = 8
        dgv.Columns.Add(tbc9)

    End Sub

    Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
        dt = getDataTable()
        DataGridView1.DataSource = dt          ' Datengitter an DataTable
        ' anbinden
        formatDataGridView(DataGridView1)      ' ... und formatieren

        MyBase.OnLoad(e)
    End Sub

    Private Sub CMB_Datei_laden_Click(sender As System.Object, e As _
      System.EventArgs) Handles CMB_Datei_laden.Click
        dt.ReadXml("C:\temp\Test.xml")
End Sub

    Private Sub CMB_Datei_speichern_Click(sender As System.Object, e As _
      System.EventArgs) Handles CMB_Datei_speichern.Click
        dt.WriteXml("C:\temp\Test.xml", XmlWriteMode.WriteSchema)
End Sub

Wie bekomme ich nun aber die gefüllten TextBoxinhalte ins DGV?

In einem vorherigen Test ging das so.

Code:

    Private Sub CMB_Daten_speichern_Click(sender As System.Object, e As _
      System.EventArgs) Handles CMB_Daten_speichern.Click
        Dim n As Integer = DataGridView1.Rows.Add()
        Try
            With DataGridView1
                .Rows.Item(n).Cells(0).Value = TB_TNR.Text
                .Rows(n).Cells(0).ValueType.ToString()
                '....
                '....
                .Rows.Item(n).Cells(8).Value = TB_EPREIS.Text
                .Rows(n).Cells(8).ValueType.ToString()
            End With
        Catch ex As System.Exception
            MsgBox("Fehler bei der Datenübernahme in das DGV!" & vbCrLf & _
              ex.Message, MsgBoxStyle.Information, "Information!")
        End Try
    End Sub


Wie bekomme ich nun die TextBoxinhalte über das DataSet / DataTable ins DGV?

Für Hilfe schon mal vielen Dank im voraus.

------------------
Gruß

Dirk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MWN
Mitglied
Dipl.-Ing.


Sehen Sie sich das Profil von MWN an!   Senden Sie eine Private Message an MWN  Schreiben Sie einen Gästebucheintrag für MWN

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 06. Feb. 2014 08:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dirk.B 10 Unities + Antwort hilfreich

Guten Morgen,

mit ein bisschen Englisch und einer bekannten Suchmaschine erhält man da schon recht brauchbare Treffer:
http://de.lmgtfy.com/?q=vb+net+datagridview+xml+datasource
DataGridView und XML taucht immer im Zusammenhang mit dem Stichwort "DataSource" auf.

http://vb.net-informations.com/xml/vb.net-xml-to-DataGridView.htm
http://www.codeproject.com/Questions/456677/Load-xml-into-datagridview
http://www.daniweb.com/software-development/vbnet/threads/429641/read-xml-into-data gridview
.
.
.

HTH
Gruß

Tobias

------------------
Besucht mich doch mal in meiner Tischlerei

"...Kommunikation ist nur so gut wie ihr Ergebnis..." - frei nach Richard Bandler / John Grinder

"...Wenn du das tust, was du schon immer tust, wirst du auch nur das erhalten, was du schon immer erhalten hast..."

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Patrick Weber
Mitglied
Konstruktionstechniker, Admin


Sehen Sie sich das Profil von Patrick Weber an!   Senden Sie eine Private Message an Patrick Weber  Schreiben Sie einen Gästebucheintrag für Patrick Weber

Beiträge: 657
Registriert: 20.11.2006

Win7 Pro SP1 64Bit
HP Z230, Core i5, 8GB RAM, nv Quadro K600
Creo Elements/Direct 19.0 M010
ModelManager 19.0 M010
clisp,VB.net,VBA,AHK,php,javascript

erstellt am: 06. Feb. 2014 09:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dirk.B 10 Unities + Antwort hilfreich

Du musst in der gebundenen Datenquelle einfügen, nicht im DGV.
Code:
Private Sub CMB_Daten_speichern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_Daten_speichern.Click
        Dim nr As System.Data.DataRow = dt.Rows.Add()
        nr.Item(0) = TB_TNR.Text
        nr.Item(1) = TB_ANZAHL.Text
        nr.Item(2) = TB_EPREIS.Text
    End Sub

------------------
Patrick

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


Sehen Sie sich das Profil von Dirk.B an!   Senden Sie eine Private Message an Dirk.B  Schreiben Sie einen Gästebucheintrag für Dirk.B

Beiträge: 534
Registriert: 25.11.2003

erstellt am: 06. Feb. 2014 14:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen!

@MWN
Vielen Dank für die Infos.

@Patrick
Das funktioniert prima.
Nun noch die Frage, wie geht es, wenn ich eine Zeile überschreiben möchte.

Ohne DataBinding ging das so:

Code:

With DataGridView1
  .CurrentRow.Cells(0).Value = TB_TNR.Text
  .CurrentRow.Cells(0).ValueType.ToString()
  .CurrentRow.Cells(1).Value = TB_ANZ.Text
  .CurrentRow.Cells(1).ValueType.ToString()
  '...


Gibt es dafür auch eine Lösung?

Vielen Dank im Voraus.

------------------
Gruß

Dirk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

HenryV
Mitglied
Konstrukteur, Engineering


Sehen Sie sich das Profil von HenryV an!   Senden Sie eine Private Message an HenryV  Schreiben Sie einen Gästebucheintrag für HenryV

Beiträge: 778
Registriert: 18.05.2005

SolidWorks 2020 x64 SP3.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 21H1
Microsoft Office 365 ProPlus
Microsoft Visual Studio Enterprise 2022

erstellt am: 06. Feb. 2014 17:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dirk.B 10 Unities + Antwort hilfreich

Hallo Dirk

Für dein Problem würde ich die CurrencyManager-Klasse empfehlen.
Damit lässt sich ein TextBox-Steuerelement an eine Spalte in einer DataTable binden.

Ein gutes Beispiel findest du hier -> XML-Telefonliste (www.vb-fun.de)

Gruss Andreas

------------------
21 ist nur die halbe Antwort.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


Sehen Sie sich das Profil von Dirk.B an!   Senden Sie eine Private Message an Dirk.B  Schreiben Sie einen Gästebucheintrag für Dirk.B

Beiträge: 534
Registriert: 25.11.2003

erstellt am: 13. Feb. 2014 09:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank noch mal.

Die Infos haben mir sehr weitergeholfen 

------------------
Gruß

Dirk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


Sehen Sie sich das Profil von Dirk.B an!   Senden Sie eine Private Message an Dirk.B  Schreiben Sie einen Gästebucheintrag für Dirk.B

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2021/2022
CAD+T
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 28. Feb. 2014 12:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen!

Das mit dem DataBinding div. Controls läuft nun soweit.

Code:

bs.DataSource = dt
'...
TB_PD_NUM.DataBindings.Clear()
TB_M_Bestelltext.DataBindings.Clear()
'...
TB_PD_NUM.DataBindings.Add(New Binding("Text", bs, "PD_NUM", True))
TB_M_Bestelltext.DataBindings.Add(New Binding("Text", bs, "M_BESTELLTEXT", True))

Hab nun das Problem eine PictureBox anzubinden.

Kurze Info dazu.
In dem Feldnamen "M_ZNAME_PLINE" steht ein Pfad mit Dateinamen, z.B..
C:\D\Konstruktion\AutoCAD\Bloecke_Artikel\108\APV-150-STBL 65_D.dwg
Die letzten 4 Zeichen .dwg sollen in .wmf getauscht werden, damit das Bild zu der DWG - Datei angezeigt wird.

Hab es schon mal so probiert, jedoch ohne Erfolg.

Code:

Me.DataBindings.Add(New Binding("Text", bs, (Strings.Right("M_ZNAME_PLINE", 5) & "D.wmf"), True, _                            DataSourceUpdateMode.OnPropertyChanged))

Hat jemand eine Idee ob das so überhaupt funktionieren könnte, oder gibt es da eine andere Möglichkeit des DataBindings.

Für Hilfe schon mal vielen Dank im Voraus.

------------------
Gruß

Dirk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


Sehen Sie sich das Profil von Dirk.B an!   Senden Sie eine Private Message an Dirk.B  Schreiben Sie einen Gästebucheintrag für Dirk.B

Beiträge: 534
Registriert: 25.11.2003

erstellt am: 28. Feb. 2014 12:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

... sorry

Bzgl. PictureBox hatte ich es so probiert:

Code:

            PictureBox2.DataBindings.Add(New Binding("Image", bs, (Strings.Right("M_ZNAME_PLINE", 4) & ".wmf"), True, _          DataSourceUpdateMode.OnPropertyChanged))

------------------
Gruß

Dirk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz