Visual Studio 2017 Community: VB.net Projekt mit mehreren Unterprojekten + DataSet

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von MichaHo.

    Visual Studio 2017 Community: VB.net Projekt mit mehreren Unterprojekten + DataSet

    Hallo,

    in einer Projektmappe sind mehrere Projekte enthalten.

    In einer Projektmappe sind DataSets u.a. mit diversen Methoden, wie Füllen der Tabellen enthalten. Alles schön und Gut.

    In einem anderen Projekt ist ein WinForm enthalten, in der die Einträge aus dem DataSet in einem DataGridView angezeigt werden sollen.

    Dazu wurde ein DataSource-Datei angelegt, in dem z.B. folgendes enthalten ist:

    XML-Quellcode

    1. <GenericObjectDataSource DisplayName="myHostsDts+TabHostsDataTable" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
    2. <TypeInfo>AdminData.myHostsDts+TabHostsDataTable, AdminData, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
    3. </GenericObjectDataSource>


    Wenn diese DataSource im DataGridView als Quelle angegeben wird, tritt zunächst kein Fehler auf; im DataGridView werden alle zur Verfügung stehenden Felder angezeigt. - Alles in Ordnung.

    Sobald das Window Form Element geschlossen und anschließend wieder geöffnet wird, tritt ein Fehler mit der Meldung "Der Typ "AdminData.MyHostsDts+TabHostsDataTable" wurde nicht gefunden." auf. Ich vermute, dass das "+"-Zeichen ungültig sein könnte.

    Daher meine Frage: Weiß jemand, ob man die DataSource umbenennen kann?

    Nachtrag:
    Die Lösung war ganz einfach:
    Im Projekt wurde die Datenquelle nicht als solches im Fenster "Datenquellen" aufgelistet.
    Erst nachdem die Tabellen in ein neues DataSet kopiert, der Source-Code angepasst und abschließend die Projektmappe neu compiliert wurde, traten auch in der beim Verbinden der Datenquelle keine Fehler mehr auf.

    Anscheinend hat beim ursprünglichen Dataset irgend etwas gefehlt, um diese als Datenquelle "bekannt zu machen".

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „BigBen2003“ ()

    Hi,
    da hänge ich mich mal mit dran. Hab gerade das gleiche Problem.
    @ErfinderDesRades wie sollte man am Besten das DS hinzufügen damit ich es in allen WinForms Projekten der Projektmappe verwenden kann?
    Danke Dir
    Und gleich noch ne Frage. In VB.Net kann ich ja im Code des DS folgendes machen

    VB.NET-Quellcode

    1. Public Shared Dts As dsMeinDataSet
    2. Private Sub dsMeinDataSet_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
    3. If Dts Is Nothing Then Dts = Me
    4. End Sub


    In C# funktioniert das nicht, da es dort die Methode Initialized für das DataSet nicht gibt...
    "Hier könnte Ihre Werbung stehen..."
    Warum sollte es die nicht geben? Die Klasse ist doch grundsätzlich die gleiche wie in VB. Wenn ich in die DataSet.Designer.CS in die Prozedur InitClass nen EventHandler hinzufüge

    C#-Quellcode

    1. private void InitClass() {
    2. //...
    3. this.Initialized += new System.EventHandler(this.DataSet_Initialized);
    und dann eben in die DataSet.cs noch reinhaue

    C#-Quellcode

    1. private void DataSet_Initialized(object sender, System.EventArgs e) {
    2. System.Windows.Forms.MessageBox.Show("got it");
    3. }
    dann wird das Event gefeuert. Und zwar bereits zur Designzeit, wenn ich das Datenquellenfenster öffne. Gibt bestimmt noch nen komfortableren Weg als in der Designer.cs rumzupfuschen, aber es geht.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.