Forum: PC-Programmierung C# Daten visualisieren in einer Tabelle


von Anwender (Gast)


Lesenswert?

Guten Morgen,

für eine C# Anwendung sollen Daten in eine Tabelle visualisiert werden.
Welche Möglichkeiten gibt es eine einfache Tabelle zu erzeugen?

von Adam P. (adamap)


Lesenswert?

Anwender schrieb:
> Welche Möglichkeiten gibt es eine einfache Tabelle zu erzeugen?

Externe Tabelle?

Daten in eine Datei schreiben, mit ';' trennen und die Datei als *.csv 
abspeichern? ...Wäre eine Möglichkeit.

von Ozvald K. (Gast)


Lesenswert?

Anwender schrieb:
> Welche Möglichkeiten gibt es eine einfache Tabelle zu erzeugen?

Meinst du "mit Tabelle zu erzeugen" das sichtbare Gitter in der 
Anwendung?
Ist die Anwendung eine Windows Form? Dann finde im Toolbox das 
DataGridView Objekt. Die Daten selbst müssen in einem DataSet sein.
Google Stichworte: C#, DataSet, DataGridView

von IT-Abteilung (Gast)


Lesenswert?

Anwender schrieb:
> für eine C# Anwendung sollen Daten in eine Tabelle visualisiert werden.
> Welche Möglichkeiten gibt es eine einfache Tabelle zu erzeugen?

Weißt du, früher™ haben sich die Schüler wenigstens noch die Mühe 
gemacht und die Frage der Hausaufgabe in eigenen Worten gestellt.

von Anwender (Gast)


Lesenswert?

Ich werde das mit ListView versuchen.

von Adam P. (adamap)


Lesenswert?

Anwender schrieb:
> Ich werde das mit ListView versuchen.

Liste != Tabelle

Und falls du es doch anders machen möchtest:
https://openbook.rheinwerk-verlag.de/visual_csharp_2012/1997_25_004.html

: Bearbeitet durch User
von c-hater (Gast)


Lesenswert?

Ozvald K. schrieb:

> Ist die Anwendung eine Windows Form? Dann finde im Toolbox das
> DataGridView Objekt.

Ja, das ist i.d.R. die beste Lösung für diesen Fall.

> Die Daten selbst müssen in einem DataSet sein.

Nein, nicht unbedingt. Man kann ein DataGridView notfalls auch 
zellenweise von Hand befüllen.
Oder auch aus einer DataTable oder sogar aus einem Array von Irgendwas, 
solange dieses Irgendwas nur "browser-visible" Eigenschaften hat und 
diese von einem Typ sind, der sich irgendwie als String, Zahl oder Bool 
darstellen kann.

Also diese Datagridview kann so ziemlich mit allem umgehen, was 
irgendwie nach tabellarischen Daten aussieht. Und mehr...

Aber genau diese Universalität macht das Teil leider auch recht langsam. 
Selbst im "virtuellen" Betrieb (es werden nur Zellen aktualisiert, die 
aktuell sichtbar sind) kommt man bei heutigen Bildschirmgrößen leicht in 
Bereiche, in denen das deutlich merkbar störend ist.

von Schlaumaier (Gast)


Lesenswert?

Datagridview ist fein.

Das kannst du Gebunden anwenden ODER ungebunden.

Gebunden = Du weist jeder Spalte eine Spalte einer Datenbank-Tabelle 
zu.
Du erstellst eine Abfrage der DB und weist diese Abfrage den 
Datagridview zu.

Das sind ca. 10-15 Zeilen.

Ungebunden = Du erstellst die Tabelle per Programm oder im Designer. 
Und fütterst du Daten per Programm von Hand. Was sehr sinnvoll ist bei 
Auswertungen. Ich erstelle meist Spaltenüberschriften, Schriftarten und 
Formatierungen im Designer und den Rest per Programm.

Ich habe in meinen Programmen schon Datagridviews benutzt die man nicht 
als solche Erkannt hat.

Grund: Ich musste eine Brechnnung für eine Unfallermittlung darstellen 
und war zu Faul 20 Label-Felder (Beschreibung) + 20 Text Felder (Wert) + 
20 Label-Felder (Einheit) zu stellen.

Bevor einer fragt: Ich hab keine Ahnung von Umfallermittlung. Aber ich 
kann fast JEDE Formel in eine Software umwandeln die mir ein Spezialist 
gibt.

Was ich damit sagen will die Teile sind wenn man es richtig macht, so 
fein das es kaum eine Software von mir gibt wo keine drin sind.

von Lutz (Gast)


Lesenswert?

Schlaumaier schrieb:
> Was ich damit sagen will die Teile sind wenn man es richtig macht, so
> fein das es kaum eine Software von mir gibt wo keine drin sind.

If all you have is a hammer everything looks like a nail.

von Heinz B. (Firma: Privat) (hbrill)


Lesenswert?

c-hater schrieb:
> Aber genau diese Universalität macht das Teil leider auch recht langsam.
> Selbst im "virtuellen" Betrieb (es werden nur Zellen aktualisiert, die
> aktuell sichtbar sind) kommt man bei heutigen Bildschirmgrößen leicht in
> Bereiche, in denen das deutlich merkbar störend ist.

Wenn man das Datagrid beim Befüllen großer Datenmengen ausblendet,
hat man auch einen erheblichen Geschwindigkeitsvorteil. Gerade das
Befüllen und vor allem das automatische Neuzeichnen des Grids bei
jeder Änderung bremst gewaltig.

: Bearbeitet durch User
von Schlaumaier (Gast)


Lesenswert?

Heinz B. schrieb:
> Gerade das
> Befüllen und vor allem das automatische Neuzeichnen des Grids bei
> jeder Änderung bremst gewaltig.

Das trifft im UNgebundenen Modus leider zu. Aber das kann man umgehen.
Ich setze es immer enable = false und ein Label drüber. "Daten werden 
aktualisiert. Wenn fertig ein REFRESH Befehl und das Label ausblenden.

Ist aber erst so ab ca. 800 Zellen nötig die man füllen muss.

Im GEbundenen Modus ist das Teil selbst bei weit über X-1000 Datensätzen 
noch schnell genug.


Aber wer füttert schon mehr als 800 Zellen "von Hand". ??? Das musste 
ich nur 1 x machen seit ich mit den Teil arbeite, und das ist schon ewig 
her.

Davon abgesehen. Wenn ich EXCEL als Daten-Ausgabe-Teil einsetzte (via 
INTEROP) ist es auch nicht viel schneller, fast noch langsamer. Aber man 
kann per INTEROP schönere Diagramme machen .;)

von gamp (Gast)


Lesenswert?

DataSet ist ist eine Katastrophe. Das geht auch mit einer BindingList 
ohne Probleme. Und bevor man es sich antut, die Tabelle (Datagridview) 
per Hand zu befüllen (Schleife Schleife), sollte man sich mal mit dem 
Databinding auseinandersetzen. Da passiert alles von selbst. Ok, ein 
paar Binding-Routinen muss man noch implementieren, aber dann läuft 
alles flüssig.

WPF könnte man noch probieren, aber da ist die Einarbeitungszeit 
ziemlich hoch.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.