vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

ADO.NET / Datenbanken
Re: Beziehungen mit AutoID 
Autor: IIIIIChrisIIIII
Datum: 21.08.08 21:06

Hallo FZelle,

vielen Dank noch mal für deine Hilfe. Der Tipp war super. Allerdings funktioniert das nicht so, wie ich es gern hätte. Könntest du dir bitte meinen Beispielcode anschauen:

Autovermietung mit Tabelle Customer: {id (AutoID), vName, nName}, Cars: {id autoID, model, owner (Fremdschlüssel zu CustomerId)}

Private Sub Button28_Click(ByVal sender As System.Object, ByVal e As _
  System.EventArgs) Handles Button28.Click
      Dim DS As New DataSet
      Dim Customers As DataTable = GetCustomerTable()
      Dim Cars As DataTable = GetCarsTable()
      DS.Tables.Add(Customers)
      DS.Tables.Add(Cars)
 
      'Relation der beiden Tabellen einstellen
      Dim Rel As New DataRelation("CustomerCars", Customers.Columns("id"), _
        Cars.Columns("owner"))
      DS.Relations.Add(Rel)
 
      'Neue Zeilen erstellen
      Dim R As DataRow = Customers.NewRow
      Customers.Rows.Add(R)
      R("vName") = "neuer VName"
      R("nName") = "neuer nName"
 
      Dim CR As DataRow = Cars.NewRow
      Cars.Rows.Add(CR)
      CR("model") = "Lamburgini"
      CR.SetParentRow(R, Rel)
 
 
      'Alles abspeichern
      Dim A As New OleDb.OleDbDataAdapter
      AddHandler A.RowUpdated, AddressOf CustomerRowInsert 'Handler anmelden
 
 
      Dim CMD As New OleDb.OleDbCommand("INSERT INTO Customer (vName, nName)" & _
        "VALUES (?,?);", DBConnection)
      CMD.Parameters.Add("vName", OleDb.OleDbType.VarChar, 100, "vName")
      CMD.Parameters.Add("nName", OleDb.OleDbType.VarChar, 100, "nName")
      A.InsertCommand = CMD
 
      A.Update(Customers)
      RemoveHandler A.RowUpdated, AddressOf CustomerRowInsert
 
      CMD = New OleDb.OleDbCommand("INSERT INTO Cars (model, owner) VALUES (" & _
        "?,?);", DBConnection)
      CMD.Parameters.Add("model", OleDb.OleDbType.VarChar, 100, "model")
      CMD.Parameters.Add("owner", OleDb.OleDbType.Integer, 4, "owner")
      A.InsertCommand = CMD
 
      A.Update(Cars)
 
   End Sub
 
   Private Function GetCustomerTable() As DataTable
      Dim T As New DataTable
      Using CMD As New OleDb.OleDbCommand("SELECT * FROM Customer", _
        DBConnection)
         Using A As New OleDb.OleDbDataAdapter(CMD)
            A.Fill(T)
         End Using
      End Using
 
      Return T
   End Function
 
   Private Function GetCarsTable() As DataTable
      Dim T As New DataTable
      Using CMD As New OleDb.OleDbCommand("SELECT * FROM Cars", DBConnection)
         Using A As New OleDb.OleDbDataAdapter(CMD)
            A.Fill(T)
         End Using
      End Using
 
      Return T
   End Function
 
   Private Sub CustomerRowInsert(ByVal sender As Object, ByVal e As _
     System.Data.OleDb.OleDbRowUpdatedEventArgs)
 
      'Aktuelle ID holen
      Using cmd As New OleDb.OleDbCommand("SELECT @@IDENTITY;", DBConnection)
         Dim o As Object = cmd.ExecuteScalar()
         Dim ID As Integer = Convert.ToInt32(o)
      End Using
 
      For Each R As DataRow In e.Row.GetChildRows("CustomerCars")
         R("owner") = ID
      Next
 
   End Sub
Im Handler CustomerRowInsert erhalte ich für die ChildRows einer Row aus der Tabelle Customer keine Elemente... OBWOHL ich eine neue Zeile mit SetParentRow beim Hinzufügen der neuen Zeile aus Cars auf die neue Zeile aus Customers verwiesen habe.

Falls das, was ich hier als Beispiel angebracht habe, ein schlechter Stil ist und/oder man es so nicht/ machen sollte, wäre ich für Verbesserungsvorschläge sehr dankbar!

Vielen Dank noch mal,
Chris
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Beziehungen mit AutoID1.609IIIIIChrisIIIII21.08.08 11:08
Re: Beziehungen mit AutoID1.256ModeratorFZelle21.08.08 14:50
Re: Beziehungen mit AutoID1.129IIIIIChrisIIIII21.08.08 16:10
Re: Beziehungen mit AutoID1.144ModeratorFZelle21.08.08 17:38
Re: Beziehungen mit AutoID1.327IIIIIChrisIIIII21.08.08 21:06
Re: Beziehungen mit AutoID1.151ModeratorFZelle22.08.08 09:17
Re: Beziehungen mit AutoID1.242IIIIIChrisIIIII22.08.08 16:06
Re: Beziehungen mit AutoID1.161ModeratorFZelle22.08.08 18:58
Re: Beziehungen mit AutoID1.207IIIIIChrisIIIII26.08.08 15:32

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel