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
Dynamische Arrays in Form einer Tabelle augeben?
michback20
myCSharp.de - Member



Dabei seit:
Beiträge: 13

Themenstarter:

Dynamische Arrays in Form einer Tabelle augeben?

beantworten | zitieren | melden

Hallo, ich bin noch nicht ganz so fit in Sachen C#.
Ich möchte gerne eine dynamische array erstellen mit beliebig vielen Spalten und Zeilen. Intern ist das auch kein Problem. Aber jetzt möchte ich das noch in Form einer Tabelle ausgeben. Per Knopfdruck soll sich dann die array öffnen. NICHT in einer Konsolenanwendung, sondern in einer Windowsanwendung. Wie kann ich so was machen, gibt es da einfach Befehle? Wenn die Tabelle sichtbar ist, wäre es auch gut, wenn der Benutzer Daten darin ändern kann. Das letztere wäre gut, muß aber nicht sein. Kann mir jemand helfen???

Gruß Micha
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4.644
Herkunft: Leipzig

beantworten | zitieren | melden

DataTable, DataRow und DataGrid sollten Dir weiterhelfen. Schau Dir mal die Klassen in der Doku an, da findest Du auch ein Beispiel.
private Nachricht | Beiträge des Benutzers
michback20
myCSharp.de - Member



Dabei seit:
Beiträge: 13

Themenstarter:

beantworten | zitieren | melden

Ich habe da mal unter den Begriffen nachgeschaut, aber da gibt es das Problem, dass so wie ich das verstanden habe, das mit der Übernahme der Daten nur aus Sql, Xml Datein geht, um es dann in einer Datatable darzustellen. Ich brauche es unbedingt aus Arrays. Vielleicht hat schon jemand soetwas gemacht? Und hat dafür einen Beispielcode?

Gruß Micha
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4.644
Herkunft: Leipzig

beantworten | zitieren | melden

Ein Beispiel für DataTable:

DataTable dt = new DataTable("TableName");
dt.Columns.Add("Spalte 1");
dt.Columns.Add("Spalte 2");
DataRow dr = dt.NewRow();
dr["Spalte 1"] = "Zelle 0/0";
dr["Spalte 2"] = "Zelle 0/1";
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["Spalte 1"] = "Zelle 1/0";
dr["Spalte 2"] = "Zelle 1/1";
dt.Rows.Add(dr);
dataGrid1.DataSource = dt;
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

beantworten | zitieren | melden

Wie mache ich das ganze mit Hilfe eines Arrays???

String[]name={"a","b","c","d"};
dt.Columns.Add(name);

Das geht leider nicht so X(
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4.644
Herkunft: Leipzig

beantworten | zitieren | melden

Schau Dir mal die LoadRow Methode der DataTable Klasse an.

--> Ich verschieb das mal nach ADO.NET.
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

beantworten | zitieren | melden

Gut das klappt erstmal
Nun habe insgesamt 10 Zeilen und 5 Spalten.
Das ganz wird aus einer Textdatei gelesen (Arbeiten mit Dateien )
Nun will ich aber in jeder Zeile in der 6Spalte noch den durchschnitt ausgeben
Wie mache ich das??

EDIT:Noch was wichtiges:
Wenn ich horizontal Scrolle ist es da möglich die erste Spalte immer anzeigen zu lassen also das die nicht mitscrollt
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

beantworten | zitieren | melden

Ist das nicht möglich???
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4.644
Herkunft: Leipzig

beantworten | zitieren | melden

Doch, Du fügst noch eine Spalte an und immer wenn Du eine Row füllst, rechnest Du den Durchschnitt aus und schreibst ihn in die Spalte.

dt.Rows[rowIndex]["Durchschnittspalte"] = deinWert;
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

beantworten | zitieren | melden

Das Problem ist nur der Wert (von der letzen Zeile) immer in die erste Zeile gesetzt wird
Der Wert steht auch nur in der ersten Zeile
Ich will das aber in jeder Zeile haben
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4.644
Herkunft: Leipzig

beantworten | zitieren | melden

Du musst die Werte natürlich in einer Schleife setzen.
Zeig mal bissl Code, falls es nicht funktioniert.
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

beantworten | zitieren | melden

Opps da habe ich dicken Klops gemacht
Habe int i=0 mit in die while Schleife geschrieben

Jetzt geht es aber
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

beantworten | zitieren | melden

Wenn ich horizontal Scrolle ist es da möglich die erste Spalte immer anzeigen zu lassen also das die nicht mitscrollt ??
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

beantworten | zitieren | melden

Wie kann ich jetzt die ganze Tabelle wieder auslesen??
Ohne dabei die letzten 5 Spalten mit auszulesen !
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

beantworten | zitieren | melden

Man müsste ja die Zellen und Zeilen zählen und die dann durch eine Schleife jagen aber wie soll sowas gehen??
Es muss ja immer ein | hinzugefügt werden
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4.644
Herkunft: Leipzig

beantworten | zitieren | melden

Du kannst auch Spalten ausblenden.

dataSet.Tables[0].Columns[0].ColumnMapping = MappingType.Hidden;

Warum soll die 1. Spalte stehen bleiben?
Ich würde diese Spalteninformationen vielleicht in den Rowheader des DataGrids schreiben ( kommt aber drauf an was es für Daten sind ).
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

beantworten | zitieren | melden

In der 2.Spalten stehen immer die Namen und die sollen immer sichtbar sein
Und das auslesen??
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

beantworten | zitieren | melden

Kann mir keiner helfen??
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

beantworten | zitieren | melden

Leute bitte jetzt helft mir doch X(
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

beantworten | zitieren | melden

Eine Idee habe ich ja schon

 while (y < Anzahl Zeilen){ 
               while (x < Anzahl Splaten){ 
                 wort+= gibt wert an position(y, x); 
                  wort += "|"; 
                  x++; 
               } 
              
                              
               wort = ""; 
               y++; 
               x = 0; 
               
         } 

Aber wie kann man die Zeilen und Spalten auslesen???
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

beantworten | zitieren | melden

Ich habe schon rausgefuden wie das geht
Aber es gibt noch 2 Probleme.
1) Ich will immer noch eine immer sichtbare Spalte haben
2)Wenn der User auf sortieren klickt und anschließend in einer Spalte was ändert soll nicht wieder sortiert werden
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

beantworten | zitieren | melden

zu 1)
Ich habe es jetzt mal mit DataGridTableStyle und DataGridTextBoxColumn versucht aber jetzt wird nur noch die Spalte angezeigt dich ich bei DataGridTextBoxColumn angegeben habe.
Ich weiss auch nicht ob das der richtige Weg ist

zu 2) hoffe mal auf eure Hilfe X(
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

beantworten | zitieren | melden

Kann mir mal einer helfen??
Ich habt das doch sicher schon mal gemacht
private Nachricht | Beiträge des Benutzers
boco25
myCSharp.de - Member



Dabei seit:
Beiträge: 483
Herkunft: Frankfurt

beantworten | zitieren | melden

Hallo alf468,
wenn du noch Hilfe brauchst, definir bitte deine Frage als neues Thema, über alle Beiträge zu blättern, habe ich kein Nerv,
Gruss,
Boris
private Nachricht | Beiträge des Benutzers