none
Wie mit DataAdapter, DataSet umgehen RRS feed

  • Frage

  • Liebe Community!

    Ich habe unter VB2008 express eine kleine Datenbankanwendung entwickelt, eine *.sdf DB eingerichtet und kann in dieser mittels des BindingNavigators auch problemlos navigieren. Bis hierher habe ich keine Probleme. Nun möchte ich gezielt im Programm einzelne Daten ändern. Das heisst, ich möchte Daten im aktuellen DataSet verändern. Wie kann ich dieses ansprechen? Ich finde dazu einfach keine geeignete Doku, nur Einzelinfos, nix Zusammenhängendes! Wer kann mir helfen?

    DANKE 

    Freitag, 23. Juli 2010 07:16

Antworten

  • Das DataSet kapsel DataTables und kapseln wiederum DataRows, die wiederum für jedes einzelne Feld ein Objekt mit dessen Wert kapseln.
     
    ' Tabelle
    Dim dt = myDataSet.Tables(0)
    ' oder über Name
    Dim dt = myDataSet.Tables("Tab1")
     
    ' Datenzeile, z.B. 11. Zeile in Tab1
    Dim r = myDataSet.Tables("Tab1").Rows(10)
     
    ' Datenfeld, z.B. 3. Feld in 11. Zeile in Tab1
    Dim f = myDataSet.Tables("Tab1").Rows(10)(2)
     
    Da alle Feld-Objekte vom Typ object sind, muss ein Typcasting ausgeführt werden (explizit oder auch implizit in VB mit Option Strict Off).
     
    Besser ist es, mit typisierten DataSets zu arbeiten, die man mit dem Designer erzeugen kann. Dann würde der Zugriff so aussehen können
     
    ' Tabelle
    Dim dt = myDataSet.Tab1
     
    ' Datenzeile, z.B. 11. Zeile in Tab1
    Dim r = myDataSet.Tab1.Rows(10)
     
    ' Datenfeld, z.B. Feld mit Name Feldxx in 11. Zeile in Tab1
    Dim f = CType(myDataSet.Tab1.Rows(10), DataSet.Tab1Row).Feldxx

    Viele Gruesse
    Peter

    Freitag, 23. Juli 2010 07:42
  • Hallo,
     
    > Ich habe unter VB2008 express eine kleine Datenbankanwendung
    > entwickelt, eine *.sdf DB eingerichtet und kann in dieser mittels des
    > BindingNavigators auch problemlos navigieren.
     
    Mit dem BindingNavigator hast Du ein relativ komplexes
    Objekt verwendet, welches eine Reihe anderer grundlegender
    DataObjekte kapselt. Für den Anfang solltest Du Dich besser
    erst mal mit diesen grundlegenden DataObjekten wie
    DataTable, DataView, CurrencyManager, DataSet, Relation,
    DataAdapter u. DataReader vertraut machen.
     
    > Bis hierher habe ich keine Probleme.
     
    Die kommen schon noch. ;-)
     
    > Nun möchte ich gezielt im Programm einzelne Daten ändern.
    > Das heisst, ich möchte Daten im aktuellen DataSet verändern.
     
    Genauer gesagt möchtest Du also Felder einer DataRow einer
    in Deinem DataSet liegenden DataTable ändern.
     
    > Wie kann ich dieses ansprechen? Ich finde dazu einfach keine
    > geeignete Doku, nur Einzelinfos, nix Zusammenhängendes!
    > Wer kann mir helfen?
     
    Schau Dir mal die Beispiele unter
     
        www.gssg.de -> Visual Basic -> VB.net
            -> Datenbank
            -> DataGridView
            -> DataTable / DataView / CurrencyManager
     
    an. Darin siehst Du u.a. wie Du Daten in DataTables ändern
    kannst und auch wie solche geänderten Daten dann letztlich
    auch wieder irgendwo in einer Datenbank landen.
     
    Gruß aus St.Georgen
    Peter Götz
    www.gssg.de (mit VB-Tipps u. Beispielprogrammen)
     
     
     
    Freitag, 23. Juli 2010 07:34

Alle Antworten

  • Hallo,
     
    > Ich habe unter VB2008 express eine kleine Datenbankanwendung
    > entwickelt, eine *.sdf DB eingerichtet und kann in dieser mittels des
    > BindingNavigators auch problemlos navigieren.
     
    Mit dem BindingNavigator hast Du ein relativ komplexes
    Objekt verwendet, welches eine Reihe anderer grundlegender
    DataObjekte kapselt. Für den Anfang solltest Du Dich besser
    erst mal mit diesen grundlegenden DataObjekten wie
    DataTable, DataView, CurrencyManager, DataSet, Relation,
    DataAdapter u. DataReader vertraut machen.
     
    > Bis hierher habe ich keine Probleme.
     
    Die kommen schon noch. ;-)
     
    > Nun möchte ich gezielt im Programm einzelne Daten ändern.
    > Das heisst, ich möchte Daten im aktuellen DataSet verändern.
     
    Genauer gesagt möchtest Du also Felder einer DataRow einer
    in Deinem DataSet liegenden DataTable ändern.
     
    > Wie kann ich dieses ansprechen? Ich finde dazu einfach keine
    > geeignete Doku, nur Einzelinfos, nix Zusammenhängendes!
    > Wer kann mir helfen?
     
    Schau Dir mal die Beispiele unter
     
        www.gssg.de -> Visual Basic -> VB.net
            -> Datenbank
            -> DataGridView
            -> DataTable / DataView / CurrencyManager
     
    an. Darin siehst Du u.a. wie Du Daten in DataTables ändern
    kannst und auch wie solche geänderten Daten dann letztlich
    auch wieder irgendwo in einer Datenbank landen.
     
    Gruß aus St.Georgen
    Peter Götz
    www.gssg.de (mit VB-Tipps u. Beispielprogrammen)
     
     
     
    Freitag, 23. Juli 2010 07:34
  • Das DataSet kapsel DataTables und kapseln wiederum DataRows, die wiederum für jedes einzelne Feld ein Objekt mit dessen Wert kapseln.
     
    ' Tabelle
    Dim dt = myDataSet.Tables(0)
    ' oder über Name
    Dim dt = myDataSet.Tables("Tab1")
     
    ' Datenzeile, z.B. 11. Zeile in Tab1
    Dim r = myDataSet.Tables("Tab1").Rows(10)
     
    ' Datenfeld, z.B. 3. Feld in 11. Zeile in Tab1
    Dim f = myDataSet.Tables("Tab1").Rows(10)(2)
     
    Da alle Feld-Objekte vom Typ object sind, muss ein Typcasting ausgeführt werden (explizit oder auch implizit in VB mit Option Strict Off).
     
    Besser ist es, mit typisierten DataSets zu arbeiten, die man mit dem Designer erzeugen kann. Dann würde der Zugriff so aussehen können
     
    ' Tabelle
    Dim dt = myDataSet.Tab1
     
    ' Datenzeile, z.B. 11. Zeile in Tab1
    Dim r = myDataSet.Tab1.Rows(10)
     
    ' Datenfeld, z.B. Feld mit Name Feldxx in 11. Zeile in Tab1
    Dim f = CType(myDataSet.Tab1.Rows(10), DataSet.Tab1Row).Feldxx

    Viele Gruesse
    Peter

    Freitag, 23. Juli 2010 07:42