Autor Beitrag
Vitalic
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 68



BeitragVerfasst: Mo 04.10.10 11:28 
Hallo,

ich versuche momentan einen SQL Befehl zu programmieren, jedoch klappt das nicht so wie ich es möchte.


Im Anhang könnt ihr mein Diagramm sehen.

Nun möchte ich mit einem Befehl die Tabelle History füllen,, jedoch komme ich da einfach nicht weiter und bin mir nicht sicher, ob das so geht.

Ich habe davor die Tabellen einzeln gefüllt und mit IDs gearbeitet, jedoch ist das sehr aufwendig.

Also wie muss ich vorgehen.


INSERT INTO History VALUES...?





Gruß, Vitalic


Zuletzt bearbeitet von Vitalic am Do 07.10.10 15:14, insgesamt 2-mal bearbeitet
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4799
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 04.10.10 12:03 
Du mußt pro Zeile einen INSERT-Befehl an die Datenbank schicken und jeweils dort dann die Spaltennamen und Werte angeben:
ausblenden Quelltext
1:
2:
INSERT INTO History (History_ID, Device_ID, Position_ID, Time, Date, ...)
VALUES (4711, 1234, 42, ...)


Hier ein SQL-Tutorial: www.w3schools.com/sql/default.asp

Für die Programmierung mit ADO.NET solltest du SQL-Parameter benutzen, s. Parameter von SQL Befehlen
Vitalic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 68



BeitragVerfasst: Mo 04.10.10 15:49 
Hallo Th69,

genau so habe ich das davor gemacht.

Aber wie kann ich das alles in einem Befehl machen?

Also du hast ja beim Insert direkt die IDs eingegeben "VALUES (4711, 1234, 42, ...)"

Kann man das auch so machen?


INSERT INTO History (History_ID, Device_ID, Position_ID, Time, Date, ...)
VALUES (INSERT INTO..., INSERT INTO...,INSERT INTO..., ...)


Gruß, Vitali
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Mo 04.10.10 15:58 
Was spricht denn dagegen deine Objekte (ich nehme einfach mal an du hast irgendeine Auflistung die du in die Tabelle einfügen willst) in einer Schleife zu durchlaufen und den jeweiligen Insert auszuführen?
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4799
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 04.10.10 16:13 
Anstatt die SQL-Befehle von Hand zu generieren, könntest du auch mit dem Visual Studio ein "DataSet" anlegen ("Add/New Item/Data/DataSet -> dataset.xsd). Mit dem entsprechenden Assistenten kannst du dann die Tabellen (aus deiner Datenquelle) importieren und über DataTableAdapter dann die generierten Methoden aufrufen, so daß du nur die Parameter übergeben brauchst.
Du mußt jedoch Tabelle für Tabelle durchgehen, d.h. erst die verknüpften Tabellen (z.B. Position oder Device), und dann erst zum Schluß deine Haupttabelle "History" (falls du wirklich in alle Tabellen einen oder mehrere neue Datensätze eintragen willst).
Das einfachste für die IDs wäre, wenn diese als "AutoIncrement" in der Datenbank definiert sind, so daß du dich nicht selber um die IDs kümmern mußt (je nach Datenbank, funktioniert dies jedoch unterschiedlich).
Welche DB verwendest du denn?
Vitalic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 68



BeitragVerfasst: Mo 04.10.10 16:44 
Danke für die Antwort

@ Th69

Ich verwende SQL Server 2008
Ich versuche mal das mit dem DataSet.


@ bakachan

Ja ich habe eine Schleife und alle notwendigen Attribute, welche ich jetzt speichern möchte.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4799
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 04.10.10 16:58 
Hallo Vitalic,

bei home.arcor.de/eckard...nloadpage/index.html gibt es unter "Datenbank in 10 Minuten" ein kleines Tutorial dazu (und auch noch ein paar weitere für fortgeschrittenere DB-Programmierung).