Announcement

Collapse
No announcement yet.

typisiert, nicht typisiert und Relationen

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

  • typisiert, nicht typisiert und Relationen

    Ich habe eine MySql Datenbank erstellt und auch Relationen gesetzt.

    Jetzt will ich die Datenbak an eine VB 2005 Anwendung anbinden und habe folgende Fragen.

    - wenn ich ein typisiertes Dataset im Designer erstelle, muss ich die Relationen im Designer nochmal erstellen?

    - wenn ich Änderungen an der Datenbank vornehme, muss ich das typisierte Dataset anpassen

    - wenn ich nicht typisierte Datasets verwende, muss ich die Tabellen und Spalten erstmal manuell erstellen

    Ist das wirklich so oder habe ich etwas falsch verstanden.

    Falls es wirklich so ist, worin liegt der Sinn, dass ich die Relationen in typisierten Datasets nochmal erstellen muss?

    Gibt es zu den o.g. Feststellungen Verbesserungen in VB2008 bzw. VB2010?

  • #2
    1. Du musst die Relationen nicht nochmal manuell erstellen. Werden automatisch aus der Datenbank erzeugt

    2. Du kannst es automatisiert anpassen lassen, zumindest bei Änderungen an Tabellen. Die SQL Abfragen werden natürlich nicht automatisch angepasst.

    Der Sinn liegt darin, dass ein DataSet eine eigenständige Datenstruktur ist und nicht direkt ein eins zu eins Abbild der Datenbank. Im Endeffekt ist es redundant, weil das DataSet die Relationen prüft und die Datenbank nochmal.

    Comment


    • #3
      - wenn ich ein typisiertes Dataset im Designer erstelle, muss ich die Relationen im Designer nochmal erstellen?
      Normalerweise sollte der Designer die automatisch ergänzen wenn man die Tabellen im Dataset anlegt. Hängt aber ein wenig vom benutzen Treiber ab. Es kann sein das der Designer nicht ermitteln kann welche Tabellen wie zusammenhängen weil dem Treiber die entsprechenden Features fehlen.

      - wenn ich Änderungen an der Datenbank vornehme, muss ich das typisierte Dataset anpassen
      na klar. Aber da gilt ja auch im untypisierten Fall. Wenn sich die Datenstruktur ändert hat das Auswirkungen auf die Anwendung die mit dieser Datenstruktur arbeitet. Auch ein Grund warum viele lieber einen ORM benutzen. Da muß man nur das Mapping zwischen Anwendungsmodell und Datenmodell anpassen. Wenn es, wie bei ADO.Net Anwendungen oft üblich ist, eine genaue 1:1 Darstellung gibt muß man eben Änderungen dann in der Anwendung explizit angleichen.

      - wenn ich nicht typisierte Datasets verwende, muss ich die Tabellen und Spalten erstmal manuell erstellen
      ???
      Wenn du einfach ein Dataset befüllst (also untypisiert und ohne Designer) dann werden die Table und Row Objekte automatisch angelegt da muß man nichts manuell machen. Du kannst halt dann nur nicht mehr stark typisiert drauf zu greifen. Eventuelle Fehler merkst du also erst zur Laufzeit und nicht zur Compilezeit und dir fehlen andere generierte Features.


      Falls es wirklich so ist, worin liegt der Sinn, dass ich die Relationen in typisierten Datasets nochmal erstellen muss?
      ADO.Net ist ein Offline System. Daten holen, Verbindung zur DB vergessen, Daten ändern, irgend wann zurückschreiben. Wenn man das mit dem Offline ernst nimmt möchte man die wichtigsten Dinge auch ohne Verbindung zur Datenbank testen können. Dazu gehört eben auch der relational Zusammenhang der Tabellen.

      Gibt es zu den o.g. Feststellungen Verbesserungen in VB2008 bzw. VB2010?
      Von VS2005 nach VS2008 war die einzige nennenswerte Ergänzung glaube ich der TableAdapterManager. Jede weiter Energie danach steckt in LINQ und noch mehr im Entity Framework. Am ADO.Net Kern (Dataset,Datatable und Konsorten) wird sich wohl in Zukunft nichts mehr ändern. Man hat sich anderen Techniken zugewandt.

      Comment


      • #4
        Originally posted by Ralf Jansen View Post
        Wenn du einfach ein Dataset befüllst (also untypisiert und ohne Designer) dann werden die Table und Row Objekte automatisch angelegt da muß man nichts manuell machen. Du kannst halt dann nur nicht mehr stark typisiert drauf zu greifen. Eventuelle Fehler merkst du also erst zur Laufzeit und nicht zur Compilezeit und dir fehlen andere generierte Features.
        Mit manuell meinte ich, dass ich die bereits erstellten Eingabefelder auf dem Formular per Code anbinden muß anstatt einfach die entsprechenden Felder aus dem Designer auf das Eingabefeld zu ziehen.

        Comment

        Working...
        X