none
SQL Server GUI mit Visual Studio

    Frage

  • Hey,

    ich bin noch absoluter Programmierneuling, habe mich aber an das Projekt gewagt eine SQL Server Datenbank zu erstellen die mit einer GUI verbunden ist, die ich in Visual Studio programmiere. Mir stellt sich jetzt die Frage wie ich die Primärschlüssel der SQL Datenbank in Visual Studio einbringen muss damit jeder Eintrag durch die GUI einzigartig bleibt. Da die Datenbank aus mehreren Tabelle besteht, die jeweils eigene Primärschlüssel haben stellt sich mir die Frage wie ich diese mit Visual Studio verknüpfe.

    Z.B habe ich eine Tabelle Period mit dem Primärschlüssel identifier und zwei Attributen "From" und "To". In der Tabelle Address habe ich den Fremdschlüssel identifier und den primärschlüssel addressID sowie die  Attribute "Land","City","Zip",... .

    Wie kann ich es Umsetzen, dass ich die Eintragungen des in Visual Studio erstellten Eingabeformulars eindeutig identifizierbar mache wenn ich genau diese Eintragungen zu einem späteren Zeitpunkt abrufen möchte?


    Mittwoch, 6. Dezember 2017 12:00

Alle Antworten

  • Hi,

    optional kann über Transact-SQL einer Tabelle nachträglich ein Feld als Primary Key erweitert werden.
    --------- snippet -------------
    USE [Database name]; 
    GO
    ALTER TABLE Period
    ADD CONSTRAINT pk_identifier PRIMARY KEY CLUSTERED (identifier);
    GO 

    Daten per SQL abfragen und einer BindingSource eines Steuerelements direkt zuweisen:
    --------- snippet -------------
    SqlDataAdapter da = new SqlDataAdapter(“Select * FROM Period“, [Connection instanz]);
    DataSet ds = new DataSet();
    da.Fill(ds);
    //
    myDataList.DataSource = ds;

    Grüße, Hubert Hermanutz


    Mittwoch, 6. Dezember 2017 20:45
  • Vielen Dank für die Antwort, das hat mich schonmal weitergebracht.


    Wenn der identifier meine ID für den Auftrag ist und in jede weitere Tabelle eingetragen wird damit die Datensätze in den jeweiligen Tabellen miteinander in Bezug stehen, wie kann ich das am besten umsetzten?

    Gibt es dafür eine konkrete SQL Umsetzung oder muss ich bei jedem neuen Auftrag eine ID über Visual Studio erzeugen und diese in der Datenbank in jedem identifier Feld einfügen.
    Donnerstag, 7. Dezember 2017 10:49
  • Vielen Dank für die Antwort, das hat mich schonmal weitergebracht.


    Wenn der identifier meine ID für den Auftrag ist und in jede weitere Tabelle eingetragen wird damit die Datensätze in den jeweiligen Tabellen miteinander in Bezug stehen, wie kann ich das am besten umsetzten?

    Gibt es dafür eine konkrete SQL Umsetzung oder muss ich bei jedem neuen Auftrag eine ID über Visual Studio erzeugen und diese in der Datenbank in jedem identifier Feld einfügen.

    Hallo SanktMarty,

    Du solltest Dich vielleicht erst einmal mit der Normalformenlehre auseinander setzen:
    https://de.wikipedia.org/wiki/Normalisierung_(Datenbank)

    Dann kennst Du schon einmal die Fachterminologie. In diesem Zusammenhang wirst Du dann feststellen, dass es eine "Referenzielle Integrität" gibt, die durch "Fremdschlüssel" gewährleistet wird.

    Fremdschlüsselbeziehungen kannst Du in Microsoft SQL Server per T-SQL herstellen (das Gekasper in der GUI kenne ich nicht :) )

    https://docs.microsoft.com/de-de/sql/relational-databases/tables/create-foreign-key-relationships

    Interessant am letzten Link ist vor allen Dingen, dass Du dort noch viel mehr Informationen zu dem komplexen Thema erhältst.

    Worauf ich hinaus will, ist Folgendes. Du fragst Dinge in einem SQL Server Forum, die NICHTS mir SQL Server unmittelbar zu tun haben, sondern mit Grundlagen von RDBMS-Systemen (zumindest interpretiere ich das aus Deiner Fragestellung).

    Da gibt es sicherlich bessere Anlaufstellen als dieses Forum. Zum Beispiel ist w3school PERFEKT für Dein Anliegen. Du musst halt selber was tun...

    https://www.w3schools.com/sql/


    Uwe Ricken (Blog | Twitter)
    Microsoft Certiied Master - SQL Server 2008
    Microsoft Certified Solution Master - CHARTER Data Platform
    Microsoft Certified Solution Expert - Data Platform
    db Berater GmbH
    Microsoft SQL Server Blog (german only)

    Donnerstag, 7. Dezember 2017 13:05
  • Mir geht es konkret darum wie ich in Visual Studio Datensätze aus SQL Server die in einer Relation zueinander stehen abrufen kann. Dass es eine Referenzielle Integrität innerhalb der SQL Datenbank gibt ist mir klar. Hubert Hermanutz Vorschlag mit der BindingSource ist da hilfreicher. Ich wollte ursprünglich in meinem ersten Post ein Datenbankdiagramm einfügen zur Visualiesierung, dafür müsste allerdings mein Profil erst verfiziert werden. Die Relationen mit Primär- und Fremdschlüssel habe ich also schon gesetzt.

    Ich werde mir noch einige Posts zum Thema multiple Tables query durschlesen, vielleicht finde ich da etwas passendes. Danke für die Hilfe (:


    Donnerstag, 7. Dezember 2017 14:22