vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 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
Paralelitätsverletzungs-Exception - schlechte Architektur??? 
Autor: megamaniac
Datum: 06.08.07 18:58

Hallo,

ich vermute, dass mein komplette Architektur missglückt ist. Es tauchen ständig neue Fehler auf...

Meine Idee: Trennung von DataLayer und PresentationLayer. Für jede Relation habe ich eine Klasse wie diese:

------
Namespace DataAccess
 
    Public Class Tournament
        Inherits IObservable
 
#Region " members "
 
        ''' <summary>
        ''' Singleton-Instanz.
        ''' </summary>
        ''' <remarks></remarks>
        Private Shared myInstance As Tournament
 
        '''' <summary>
        '''' Strongly Typed TableAdapter, um Abfragen durch Pufferung zu _
          reduzieren.
        '''' </summary>
        '''' <remarks></remarks>
        Private myDT As GDA.TournamentDataTable
 
        ' Erbt die Liste von IObservable (wird im Konstruktor instanziiert)
#End Region
[...]
  Public Function GetAll() As GDA.TournamentDataTable
            Return myDT
   End Function
[...]
 
Public Sub UpdateData(ByVal dt As GDA.TournamentDataTable)
 
            Dim ta As New GDATableAdapters.TournamentTableAdapter()
 
            ' Versuch, die Daten zu persistieren mit "second chance" bei 
            ' Problemen
            Try
                ta.Update(dt) <-- Fehler!!!
                dt.AcceptChanges()
------
Also Singleton und beobachtetes Subjekt (Observer Pattern). Darüber hinaus wird eine DT gecached, die immer die aktuellen, persistierten Daten enthält. Ich habe weitere private Helfermethoden und eine öffentliche zur Selektion und Manipultation von Daten.
Formulare können sich nun als Beobachter eintragen. Sie arbeiten dann mit den Singleton-Instanzen jeder benötigten Relation.

---------
Public Class TournamentEdit
    Implements DataAccess.IObserver
 
#Region " members "
 
    [...]
    Private myTournament As DataAccess.Tournament
[...]
Private Sub DeleteTournament()
        If Not myTournament.Contains(myTournamentId) Then
            Return
        Else
            Dim result As DialogResult
            Dim dt As GDA.TournamentDataTable
            dt = myTournament.GetAll
            Dim dr As GDA.TournamentRow = myTournament.GetSingle(myTournamentId)
            If [Sicherheitabfrage-bestätigt] Then
                dr.Delete()
                Try
                    myTournament.UpdateData(dt)
                Catch ex As Exception
                    Debug.WriteLine(ex.Message & " " & ex.StackTrace)
                End Try
[...]
------------------
Fehlermeldung beim Update über den TableAdapter. Ich habe sämtliche Beziehungen aus der DB entfernt und benutze nur EINEN Client. Vermutlich liegt das Problem in dem Gewurschtel mit der DataTable, die ich zwischen den Layern hin und her schiebe.

Habt Ihr einen Tipp? DataTables falsch verstanden?
Wie kann ich einen strongly typed datatable klonen (clone funzt nicht)? Wäre das eine Lösung?

Vielen Dank im Voraus!!!
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Paralelitätsverletzungs-Exception - schlechte Architektur???1.342megamaniac06.08.07 18:58
Re: Paralelitätsverletzungs-Exception - schlechte Architektu...791megamaniac06.08.07 19:14
Re: Paralelitätsverletzungs-Exception - schlechte Architektu...1.115ModeratorFZelle07.08.07 09:24
Re: Paralelitätsverletzungs-Exception - schlechte Architektu...791megamaniac07.08.07 11:36
Re: Paralelitätsverletzungs-Exception - schlechte Architektu...778ModeratorFZelle08.08.07 09:09

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