Welche Tabellendarstellung ist ideal?

Scrapy

Mitglied
Ich will eine Menge Daten in C# über eine Liste mit mehreren Spalten darstellen und editieren zu können.
(Schön wäre es, wenn man ComboBox'es und CheckBox'es sowie Icons mit einbinden kann - aber alle Daten anzuzeigen und zu editieren reicht schon einmal aus.)

PS.: Die Daten liegen in einer MySQL-Datenbank vor, die ich auch ins Visual Studio einbinden könnte...!

Mein Problem ist, dass ich schon eine Menge dazu ausprobiert habe und nichts hat so wirklich richtig funktioniert. :(
- Beim DataGrid fehlen mir die Aktionen, wenn neue Zeilen hinzukommen und wie man das abfangen kann. Zudem kann man die Zeile mit dem Sternchen(*) nicht deaktivieren, wenn man die Daten manuell einließt.
- Im DataSet die Daten abzulegen ist mir in Kombination mit dem DataGrid zu irgendwie aufwendig..., da muß man z.B. 3 gleiche Spalten anlegen, damit man sie im DataGrid schön sehen kann. Zusätzlich muß man die Änderungen im DataGrid wiederum abfangen, weil sie sich sonst im DataSet nicht mitändern.
- Bei ListView kann man keine SubItems editieren oder irgendwie das Rechteck bekommen an der Stelle, wo diese sich befinden.

Gibt es nicht irgendwie etwas einfaches? Oder geh' ich da nur falsch an die Sache ran!?


Ich bedanke mich schon mal für jeden Vorschlag!
 
ich persönlich würde für deine zwecke schon nen datagrid verwenden. die daten in nen dataset lesen und dann im grid anzeigen (kannst du ja dan viele einstellungen vornehmen wie das grid auszusehen hat)

kann hierfür die seite WindowsFormsFaq empfehlen..da findet man zu vielen Steuerelemten wichtige sachen
 
Oh, nette Site, Danke - da findet man echt ne Menge (meines Wissens) undefinierter Sachen von C#!

Kennst du dich zufällig ein bisschen mehr mit dem DataGrid, als ich aus? ;)
-> Ich finds nämlich ganz schön aufwendig dieses DataSet anzulegen mit jeder Tabelle und ihren Spalten und das danach nochmal als ColumnStyle ins DataGrid einzutragen... . Vielleicht mach' ich da auch was falsch aber die MSDN beschreibt es fast genauso - zumindest mit der Einbindung einer Datenbank. Meine Tabellen der Datenbank lassen sich aber über die Relationen im Visual Studio irgendwie nicht realisieren oder ich stell mich da zu doof an. :(

In kürze mal meine Tabellen (nur mal 2 Auschnitte):

Tabelle Mitarbeiter:
- ID (Primary Key)
- Nachname
- Vorname
- Gehalt
- ...
- AbteilungsNr (Foreign Key mit Abteilung.ID)

Tabelle Abteilung:
- ID (Primary Key)
- Name
- Info
- ...

Ich denke einfach mal das diese Beziehung: WHERE Mitarbeiter.AbteilungsNr=Abteilung.ID eigentlich nichts besonderes ist aber diese Beziehung kann im Visual Studio nicht ge-updatet, gelöscht oder hinzugefügt werden. So müßte ich eben alles selber schreiben - wäre ja nicht das Ding, wenn ich auf alle (einschließlich Neue Zeile (mit Stern: *)) Zellen zugreifen könnte ohne irgendwelche APIs einzubinden.
Hab echt nichts gegen solche Assistenten aber irgendwie sollten die Grundfunktionen schon irgendwie verfügbar sein - eben zum Programmieren und nicht zum zusammenklicken... . ;-)

Nochmals Danke für die Antwort! :)
 
aus dem stehgreif heraus kann ich dir da jetzt leider nicht helfen..aber da gibt es im .net auch relationen die nen dataset dartstellen und dann meiner meinung nach auch events die ausgelöst werden sobald sich die zugrunde liegenden tabellen änder. wenn du diese dann noch auswertest hast du das was du willst ohne alles von hand zu erneuern

würde dir gerne weiterhelfen, habe es leider aber selber noch nicht gemacht, sondern nur gelesen

schmuseschaf
 
Na ja ich kenn' mich in C++ auch etwas besser aus aber ich will eben mal was mit C# schreiben (...ist ja Objektorientierter als C++, was in manchen Fällen echt gut ist!). ;-)
In C++ ist es nicht so das Problem, dass man bestimmte Eigenschaften nicht bekomment, leider oder es ist eben schöner das man da mehr Programmieren muss.
Hab' ja nichts gegen WYSIWYG aber zu viel ist eben zu viel, weil man nichts mehr direkt nachvollziehen kann.

Vielleicht hat wer anders noch einen Tipp für mich - ich würd' mich sehr freuen! :)

Danke nochmals schmuseschaf! ;)
 
hi Scrapy,

füge einfach zu deinem Projekt ein Dataset ( über add item -> dataset) hinzu...
Schau es dir im DesignerModus an und zieh die Tabellen,die du benötigst per Drag&Drop auf das Dataset (Die Tabellen aus deiner Datenbank werden dir vom "Server Explorer " angezeigt nachdem zu die Verbindung hergestellt hast)


Jetzt kannst du aus der Toolbox-> Data einen "SqlDataAdapter" per Drag&Drop in deine Form einfügen; dabei startet normalerweise automatisch ein Wizard wo du Tabellen auswählen und falls nötig, Abfragen etc. schon mit einbeziehen kannst.

Nachdem du den Wizard beendet hast, hat dir das Framework die nötigen Statements für den SqlDataAdapter automatisch generiert. In den Properties kanns du ihm einen Namen geben z.b ( A_ <"Tabellenname">).

Im Programm kannst du dann diesen über den Namen ansprechen und die Methode "Fill" auswählen, wo du dann die entsprechende Tabelle im Dataset füllen kannst.

Gruß Lector
 
Zurück