Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Spalteninformationen aus DB abrufen
Quallo
myCSharp.de - Member



Dabei seit:
Beiträge: 994
Herkunft: Nähe Bremen

Themenstarter:

Spalteninformationen aus DB abrufen

beantworten | zitieren | melden

Ich bin dabei ein Datenbanktool für den firmeninternen einsatz zu schreiben.

Es sollen(nicht für alle Tabellen) nur Datensätze hinzugefügt werden können, es sollen keine gelesen oder gelöscht werden können.

Wie ist es nun möglich die Spaltenkopfinformationen für eine Tabelle in der Datenbank zu kriegen.

Sobald ich eine Zeile aus der Datenbank in das Dataset lese habe ich die Informationen über die Spalten im Datagridview drin und kann eine neue Zeile erstellen.

Wie kann ich das hinbekommen, ohne über ein Select Daten abzurufen?

Gibt es keine Befehl, der mir nur die Spalteninformationen für eine Zeile abruft?


Grüße Christoph
private Nachricht | Beiträge des Benutzers
MAjbO
myCSharp.de - Member



Dabei seit:
Beiträge: 97
Herkunft: Schweiz

beantworten | zitieren | melden

Hallo Quallo

Handelt es sich um eine MS SQL Server DB?
Dann kannst du nämlich aus der Systemtabelle syscolumns die Informationen auslesen. Eine möglichkeit dafür im C# fällt mir grad nicht ein.

Gruss
MAjbO
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4802
Herkunft: Leipzig

beantworten | zitieren | melden

Da solltest Du doch über die Suchfunktion etwas finden.
private Nachricht | Beiträge des Benutzers
Quallo
myCSharp.de - Member



Dabei seit:
Beiträge: 994
Herkunft: Nähe Bremen

Themenstarter:

beantworten | zitieren | melden

@MAjBO: Es handelt sich um Oracle.
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1787

beantworten | zitieren | melden

Auslesen von Tabellen- und Datenbankinformationen
private Nachricht | Beiträge des Benutzers
Quallo
myCSharp.de - Member



Dabei seit:
Beiträge: 994
Herkunft: Nähe Bremen

Themenstarter:

beantworten | zitieren | melden

Habe ich natürlich schon gelesen.

Aber muss das denn wirklich alles so kompliziert sein?
Eine nette eingebaute Funktion fände ich hübscher.
Wenn ich ein Select-Befehl ausführe übernimmt er ja auch alle Spaltenbezeichnungen und Typen.
Wieso geht das nicht ohne Select-Befehl?

Ich will ja nichts auswählen, ich will Spalten einfügen!
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1787

beantworten | zitieren | melden

Abrufen einer Leermenge?
select * from table_x where id=impossiblevalue
Sollte eine leere Tabelle zurückliefern(mit Spalteninformationen). Vielleicht ist es das was du suchst.
private Nachricht | Beiträge des Benutzers
Quallo
myCSharp.de - Member



Dabei seit:
Beiträge: 994
Herkunft: Nähe Bremen

Themenstarter:

beantworten | zitieren | melden

Ich mache jetzt "Select * from Table where Rownum < 0".

Das liefert mir ein leeres Ergebnis, aber die Spalteninformationen werden angezeigt, das Dataset ist also typisiert(auch wenn man das vielleciht nicht ganz so nennen kann).

Sieht jemand den Fall, dass diese Lösung kaputt geht?

Ich denke, dass es auch bei anderen Datenbanken die Möglichkeit gibt, das Ergebnis künstlich auf null Ergbenissätze zu begrenzen.


Grüße Christoph
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4802
Herkunft: Leipzig

beantworten | zitieren | melden

Was hat das ResultSet damit zu tun ob das DataSet typisiert ist?
Entweder ist ein Schema vorhanden oder nicht.

Jede DB muss doch aber SP's oder ähnliches haben um Spalteninformationen auslesen zu können.

IMHO ist aber "SELECT * FROM INFORMATION_SCHEMA.Columns" SQL-Standard.
private Nachricht | Beiträge des Benutzers
Quallo
myCSharp.de - Member



Dabei seit:
Beiträge: 994
Herkunft: Nähe Bremen

Themenstarter:

beantworten | zitieren | melden

Zitat
Original von Quallo

Das liefert mir ein leeres Ergebnis, aber die Spalteninformationen werden angezeigt, das Dataset ist also typisiert(auch wenn man das vielleciht nicht ganz so nennen kann).

Es ist mir schon klar, dass das kein typisiertes Dataset ist. Es sind jetzt aber(zumindest für diese Tabelle) die Typinformationen sowie Namen der Spalten in dem Dataset, wenn ich das jetzt an das Datagrid binde habe ich dort eine leere Tabelle des gleichen Typs wie der Table auf den ich die Select-Anweisung angewendet habe.

Sollte aber eigentlich ganz deutchlich aus dem Thread hervorgehen, dass das so gedacht ist.
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4802
Herkunft: Leipzig

beantworten | zitieren | melden

Zitat
Es ist mir schon klar, dass das kein typisiertes Dataset ist.

Aber einem Anfänger, der diesen Thread liest evtl. nicht!
private Nachricht | Beiträge des Benutzers
Quallo
myCSharp.de - Member



Dabei seit:
Beiträge: 994
Herkunft: Nähe Bremen

Themenstarter:

beantworten | zitieren | melden

Deswegen habe ich ja vorsichtashalber das "(auch wenn man das vielleciht nicht ganz so nennen kann)" dazu geschrieben. Das sollte nicht mit einem typisierten Dataset verwechselt werden, sondern mit typisiert war gemeint, dass die Typinformationen für die Spalten festgelegt wurden.

Ist das damit geklärt?
private Nachricht | Beiträge des Benutzers