Announcement

Collapse
No announcement yet.

VB 2005 TableAdapter

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • VB 2005 TableAdapter

    Hallo zusammen,
    ich habe da was vom TableAdapter in VB 2005 gehört.
    Bisher habe ich den DataAdapter benutzt. Den habe ich wie folgt gefüllt:

    Private dsData As New DataSet
    Private daData As SqlDataAdapter

    Dim Cnn As New SqlConnection(PstrConnString)
    If Cnn.State = ConnectionState.Closed Then Cnn.Open()

    dsData.Reset()
    daData = New SqlDataAdapter("Abfrage", Cnn)
    daData.Fill(dsData, "MyData")

    Wie kann ich aber nun einen TableAdapter per Code füllen? Bisher habe ich nur gelesen, dass dies nur per Assi geht.

  • #2
    Hallo,

    der typisierte TableAdapter ist das Gegenstück zum typisierten DataSet (welches ja auch nicht von Hand geschrieben wird). Aus diesem Grund gibt es 2 Wege, den TableAdapter zu <b>erzeugen</b>:

    1. Wizard von Visual Studio 2005
    2. XSD.EXE

    Auch im .NET Framework 2.0 SDK gehört das <b>Microsoft Xml Schemas/DataTypes support utility</b> (<i>XSD.EXE</i>) zum Lieferumfang. Während dieses Kommandozeilenwerkzeug im .NET Framework 1.x aus einem XML-Schema die Klassen des typisierten DataSets in der gewünschten Sprache (C# oder VB.NET) generiert hat, unterstützt die neue Version zusätzliche Funktionen. Wenn die als Input verwendete XSD-Datei auch das XML-Schema des TableAdapters enthält, generiert das Tool auch die Klassen des TableAdapters in der gewünschten Sprache. Zum Beispiel erzeugt der Aufruf <i>XSD /d /l:CS /enableDataBinding DataSetVergleich.xsd</i> aus der 24 kByte großen XSD-Datei das 80 kByte große Ergebnis <i>DataSetVergleich.cs</i> (auf Wunsch kann über den <b>l</b>-Schalter auch VB-Quelltext generiert werden).

    Der spätere Gebraucht des TableAdapters (d.h. das Füllen des typisierten DataSets mit der Ergebnismenge der SELECT-Abfrage) kann wie gewohnt von Hand codiert werden. Zusätzlich zur vordefinierten <b>Fill</b>-Methode erlaubt der TableAdapter die visuelle Konfiguration von beliebig vielen zusätzlichen Fill-Alternativen, um eigene Parameter als WHERE-Einschränkung an die SELECT-Anweisung zu übergeben. Im Quelltext kann dann die jeweils geeignete Fill-Methode aufgerufen werden.

    Siehe das Schritt-für-Schritt-Beispiel <i><a href="/webx?50@@.4a87523c/4">Andreas Kosch "VB 2005 - Datenbindung" 06.11.2006 12:29</a></i&gt

    Comment


    • #3
      Ok...
      Ich bin mir nicht ganz sicher ob ich das richtig verstanden habe....

      Wie deklariere ich denn nun den TableAdapter..?
      (Private daData As SqlDataAdapter) SqlTableAdapter finde ich nicht... oder kann ich das dann doch nicht per Quellcode zuweisen..

      Comment


      • #4
        Hallo,

        der TableAdapter ist eine vom Wizard (XSD) automatisch generierte Klasse, die bei einer MS SQL Server-Tabelle eine <b>typisierte</b> Fassung von <i>SqlDataAdapter</i> darstellt.

        &gt;..SqlTableAdapter finde ich nicht...

        Da der TableAdapter nur für <b>eine ganz bestimmte</b> Datenbanktabelle (genauer gesagt, Ergebnismenge) gilt, kann es keine universelle Komponente geben. Der TableAdapter verbaut intern die Struktur der Datenbanktabelle, so dass der TableAdapter vergleichbar mit dem typisierten DataSet nur für eine bestimmte Tabelle gilt. Aus diesem Grund muss der Inhalt der Klasse jedes Mal aufs Neue zusammengebaut werden

        Comment


        • #5
          Aus dieser Antwort ist mir jetzt klar geworden warum das nicht gehen kann was ich vor hatte...

          Dank

          Comment

          Working...
          X