Frontend Datenbank Ringversuche

  • VB.NET

Es gibt 88 Antworten in diesem Thema. Der letzte Beitrag () ist von dattKlobiche.

    Da gibt's nix mit Details, erscheint einfach nur unten in der Ausgabe. Kein Fehler, nur diese Info. Ich kann danach auch ganz normal Dantesätze anlegen als wäre nix. Nur die Daten sind halt nicht da.
    Ist aus dem DatasetX Modul

    VB.NET-Quellcode

    1. ''' <summary>
    2. ''' sets the manager of all Tables, TableAdapters and BindingSources and stuff
    3. ''' </summary>
    4. <Extension()> _
    5. Public Function Adapter(ByVal dts As DataSet, ByVal value As DatasetAdapter) As DataSet
    6. Dim adp = dts.Adapter
    7. If adp.NotNull Then
    8. If adp Is value Then Return dts
    9. Throw value.Exception("Dataset.Adapter already initialized")
    10. End If
    11. value.DataSet = dts
    12. DatasetAdapterBase.Attachs(dts) = value
    13. Return dts
    14. End Function

    Der Fehler taucht bei

    VB.NET-Quellcode

    1. DatasetAdapterBase.Attachs(dts) = value
    auf
    Er hängt doch einen eher und zwar bei

    VB.NET-Quellcode

    1. value.DataSet = dts

    In dts steht Ringversuche.Rdaten, das klingt für mich erstmal richtig. Dann muss wohl doch irgendwas mit der Datenbank nicht stimmen.
    Der will nicht :D
    Ein Ausnahmefehler des Typs "System.IO.FileNotFoundException" ist in DbGenerator.exe aufgetreten. Zusätzliche Informationen: Die Datei oder Assembly "MySql.Data, Version=6.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.

    So langsam hab ich genug für heute :D
    komisch - eiglich sollte die mySql-Dll mit dabei sein.
    ausserdem wird sie doch garnet angesprochen, denkich.
    Weil du bist doch mit Access unterwegs, oder habich was falsch gelesen?

    Wenn man dann keine mySql-Informationen abruft, sollte der nicht sofort crashen.
    Aber ist auch eins von den vielen Dingen, die ich nie ausprobiert hab.

    ErfinderDesRades schrieb:

    komisch - eiglich sollte die mySql-Dll mit dabei sein.
    ausserdem wird sie doch garnet angesprochen, denkich.
    Weil du bist doch mit Access unterwegs, oder habich was falsch gelesen?

    Jo, alles nur Access. Die Dlls fehlten tatsächlich, aber dann gings mit den Fehlern weiter.
    Ein Ausnahmefehler des Typs "System.Data.StrongTypingException" ist in DbGenerator.exe aufgetreten. Zusätzliche Informationen: Der Wert für Spalte AutoIncrement in Tabelle Provider ist DBNull.
    Ich hab die Datenbank auch nochmal händisch erstellt aber offensichtlich ist das immer noch irgendwas nicht gleich. So langsam verzweifle ich etwas. Dabei war die Datenbankanbindung in der Theorie doch total einfach.
    Waren auch noch 2 drin die ich gar nicht brauche. Aber die Zwischentabellen kriegen doch keinen Primärschlüssel oder hab ich das jetzt falsch im Kopf. Ich krieg jedenfalls immer noch die Warnungen und er zeigt keine Daten an. Ich glaube ich muss mir da nen anderen Weg überlegen. Irgendwie scheint das aber auch mit den neueren Office Versionen und 64 Bit Systemen ne Menge Ärger zu geben.
    Jeder Datensatz, den du abspeichern willst, braucht einen Primkey. Ohne Primkey weiß die DB nicht, an welchem DS sie Änderungen vornehmen soll.
    MittlerTabellen können auch zusammengesetzte Primkeys haben, also 2 ForeignKeys können auch einen Primkey bilden, ohne dass eine zusätzliche Spalte nötig ist.
    Aber Prim muss sein.
    Aber dann haben doch alle Tabellen einen Primärschlüssel(mal abgesehen von den TA Tabellen, aber die hab ich eh wieder rausgeschmissen) oder bin ich jetzt völlig blind?
    Bilder
    • Beziehungen2203.png

      28,33 kB, 815×589, 46 mal angesehen
    Da will man mal gemütlich von zu Hause arbeiten und kriegt direkt nen Fehler:
    Fehler BC30521 Fehler bei der Überladungsauflösung, da keine zugreifbare "ToDictionary" für diese Argumente am spezifischsten ist: Erweiterungsmethode "Public Function ToDictionary(Of DataTable)(keySelector As Func(Of BindingSource, DataTable)) As Dictionary(Of DataTable, BindingSource)" in "Enumerable" definiert: Nicht spezifisch genug. Erweiterungsmethode "Public Function ToDictionary(Of DataTable)(keySelector As Func(Of BindingSource, DataTable)) As Dictionary(Of DataTable, BindingSource)" in "CollectionX" definiert: Nicht spezifisch genug. WinFormHelpers C:\Programmieren\Ringversuche\WinFormHelpers\System.Windows.Forms\BindingSourceBinder.vb 45
    Laut der spärlichen Funde im Netz soll eventuell ein Projekt auf sich selbst verweisen, dafür habe ich aber keine Anzeichen gefunden. Machts vielleicht der Unterschied von VS CE 2013 und 2015(zu Hause) oder liegt's wohlmöglich an Win 10.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „dattKlobiche“ ()

    Fehlerzeile ist 45, hab vergessen das in der Meldung kenntlich zu machen.

    VB.NET-Quellcode

    1. Public Sub New(first As BindingSource, second As BindingSource)
    2. ->Dim dic = {first, second}.ToDictionary(Function(src) src.DataTable)<-
    3. Dim rl = dic.First.Key.DataSet.Relations.Cast(Of DataRelation).FirstOrDefault( _
    4. Function(r) dic.ContainsKey(r.ChildTable) AndAlso dic.ContainsKey(r.ParentTable))
    5. If rl.Null Then Throw Me.Exception("there is no DataRelation between ", first.DataTable.TableName, " and ", second.DataTable.TableName)
    6. Me.bsParent = dic(rl.ParentTable)
    7. Me.bsChild = dic(rl.ChildTable)
    8. Me.rl = rl
    9. AddHandler bsChild.CurrentChanged, AddressOf bsChild_CurrentChanged
    10. bsChild_CurrentChanged(second, Nothing)
    11. End Sub

    Ah - kann sein, dass genau das vorliegt, was die Fehlermeldung sagt: Eine Uneindeutigkeit.
    Ich hab nämlich neulich bemerkt, dasses im neueren Framework FW4.5 eine ToDictionary-Extension gibt, die genau das macht, was ich schon Jahre zuvor in meinem CollectionX-Extension-Modul gecodet hab (weißt ja, das Rad erfinden ;) )
    Probier also mal, die CollectionX.ToDictionary()-Methode löschen, denn nun gibts sie ja im Framework.

    Das würde bedeuten, dass du bei "nicht zuhause" ein niedereres Framework benutzst.
    Wäre also zu überlegen, stattdessen dein Framework runterzustellen, damit sich die Verhältnisse wirklich gleichen.