Laden...

Access: Insert mit C# bei Referenztabellen - Gleichzeitig möglich? Abfragen auf Datenbank speichern?

Erstellt von ck82 vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.590 Views
C
ck82 Themenstarter:in
34 Beiträge seit 2015
vor 7 Jahren
Access: Insert mit C# bei Referenztabellen - Gleichzeitig möglich? Abfragen auf Datenbank speichern?

verwendetes Datenbanksystem: <Access>

Hallo Forum,

hoffe ihr könnt mir helfen, ich bin Anfänger in Programmierung und versuche mit Datenbanken klar zu kommen. Nun hab ich ein paar Fragen:

Frage 1:

Das füttern der Datenbank per Insert-Befehl ist kein Problem. Nur habe ich Referenztabellen in der Tabelle, welche ich füttern möchte.

Ich ziehe Daten aus Textboxen (i.d.R. string) - in dem Referenzfeld wird aber in der Regel ein Long-Wert benötigt.

Muss ich nun vorerst jede Referenztabelle über eine SQL-Abfrage in eine Long-Variable auslesen und die Long-Variable später wieder in meinem Insert-Befehl verwenden oder gibt es eine andere Möglichkeit, evtl. die Abfrage der Referenztabellen gleich mit in der SQL-Abfrage durchzuführen?

Habe aktuell 11 Referenztabellen --> Kleine wie "Herr / Frau" aber auch große mit mehr Werten.
Die Referenztabellen nutze ich wieder als Referenztabellen in meinen cmb.

Frage2:

Gibt es die Möglichkeit in mehren Tabellen gleichzeitig mit Werten zu füttern. Also die Haupttabelle und die Referenztabelle oder müsste ich alle einzeln ergänzen?

Ergänzung:
Frage3:

Ist es möglich Abfragen (qry) der Datenbank zu verwenden, z.B. in Access erstellen und dann aus dem Programmcode heraus aufrufen???

Würde mich über eure Hilfe sehr freuen.

Vielen Dank im voraus.

ck

Hinweis von Coffeebean vor 7 Jahren

Hallo ck82, wir haben den Beitrag diskutiert und in diesem Fall sind drei bzw. mehrere Fragen in einem Thread okay, da es sich auf das gleiche Thema bezieht. Trotzdem für die Zukunft der Hinweis auf [Hinweis] Wie poste ich richtig? Punkt 1.2.

Gruss Coffeebean

1.029 Beiträge seit 2010
vor 7 Jahren

Hi,

vorab - falls du die Wahl hast: Access als Datenbank zu nutzen ist mit gutem Grund keine gute Idee - insofern ggf. umstellen falls du das darfst.

Zu Frage 1:
Auf folgendem Artikel ist beschrieben, wie man's mit VB.NET macht - die Vorgehensweise entspricht somit C# und sollte damit leicht nachahmbar sein:
Gewusst wie: Abrufen den ID-Wert beim Einfügen von Datensätzen in Access-Datenbank mit Visual Basic .NET

Letztendlich schickst du den Befehl "SELECT @@IDENTITY" ab und bekommst damit die neue, automatisch generierte Id. (Wobei Google auch andere Werte wie z.B. einen "SELECT MAX(Id)" vorschlagen - soll dummerweise ähnlich "zuverlässig" sein..

Zu Frage 2:
Access verarbeitet meines Wissens nach auch mehrere SQL-Statements auf einmal - vorausgesetzt diese werden:
a) mit Semikolon getrennt
b) sind durch Zeilen voneinander getrennt

Zu Frage 3:
Auch das ist möglich - nennt sich in Access wohl "Object Query" - ist aber auch sowas wiene "Stored Procedure" - auf nachfolgendem Link siehst du, wie man diese ausführen kann:
How to Execute an Object Query in MS Access using C#?

LG

Hinweis von gfoidl vor 7 Jahren

Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 3.1

C
ck82 Themenstarter:in
34 Beiträge seit 2015
vor 7 Jahren

Hallo Taipi88,

danke für deine Antwort.

Hatte die letzten Tag wenig Zeit zum Programmieren, daher erst heute eine Antwort.

Bin jetzt über DataSet gestolpert.

Damit bin ich grade am experimentieren.

Deine Artikel können aber ein gute Unterstützung sein.

Gruß

ck