Autor Beitrag
Ivy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 228



BeitragVerfasst: Mo 31.05.10 13:32 
Hallo zusammen,
ich habe ein Dataset angelegt:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
  fDataTable.Columns.Add("ID", typeof(int));
      fDataTable.Columns.Add("Name", typeof(string));
      fDataTable.Columns.Add("Alter", typeof(int));

      fDataTable.Rows.Add(1, "Karlheinz Reiher", "30");
      fDataTable.Rows.Add(2, "Brunhilde Förster", "24");
      fDataTable.Rows.Add(3, "Edelbert Jakobs", "65");


Nun möchte ich dass man z.b das Alter zur Laufzeit ändern kann (also +1 oder -1 Jahr).
Wie kann ich das realisieren?
Vielleicht hat jemand ne idee...

grüße ivy
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mo 31.05.10 13:51 
Hallo,

du kannst mit datatable.Rows[rowIndex].ItemArray[cellIndex] auf die jeweilige Zeile/Spalte zugreifen.

Wenn du über den Spaltename zugreifen willst kannst du dies über datatable.Columns["blub"].Ordinal realisieren. An dieser Stelle bietet sich wohl auch eine Extensions an.

Aber generell würde ich nicht das Alter speichern, sondern das Geburtsdatum und für das Alter ein Property implementieren.

Gruß
Ivy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 228



BeitragVerfasst: Mo 31.05.10 14:01 
Hm ok danke für die antwort. Mit dem alter ist halt jetzt erstmal nur nen beispiel, kann das später ja immernoch beliebig ändern, sodass es ein wenig sinnvoller ist.

Muss ich i-was für rowIndex und cellIndex einsetzen?? immoment funktioniet noch gar nix xD
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mo 31.05.10 14:02 
Klar musst du dafür was einsetzen :o

Den Zeilen (rowIndex) und Spalten (cellIndex).

Irgendwie muss das Programm ja wissen was es tut :o
Ivy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 228



BeitragVerfasst: Mo 31.05.10 14:08 
ja logisch deswegen frag ich ja.
und woher bekomm ich den zeilen und spaltenindex? bzw was is das für ein index?
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 31.05.10 15:12 
user profile iconIvy hat folgendes geschrieben Zum zitierten Posting springen:
bzw was is das für ein index?

Häh? Das sind doch zwei verschiedene Indizes. Also kann das nicht mit einer Antwort geklärt werden.

user profile iconIvy hat folgendes geschrieben Zum zitierten Posting springen:
und woher bekomm ich den zeilen und spaltenindex?

Du musst doch entscheiden oder klären, welcher Wert zu ändern ist. Mögliche Verfahren:

1. Suche die Zeile, die zu ID=3 gehört.
ausblenden C#-Quelltext
1:
DataRow row = fDataTable.Rows.Find(3);					

2. Ändere in dieser Zeile den Wert in der Spalte "Alter":
ausblenden C#-Quelltext
1:
2:
if (row != null)
   row["Alter"] = 18;

Es gibt noch viele andere Situationen und Verfahren; das sind nur Beispiele.

Aber ich habe den Eindruck, du solltest nicht einfach irgendwie anfangen und irgendwas machen, sondern zielgerichtet vorgehen und dich richtig einarbeiten. Natürlich musst du auch vorher nachdenken, was du willst und wonach du fragen solltest.

Jürgen
Ivy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 228



BeitragVerfasst: Mo 31.05.10 16:25 
aha okay kommt aber ein fehler
"Die Tabelle hat keine Primärschlüssel."
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mo 31.05.10 16:32 
Und was könnte das bedeuten?

Ich glaub ich hab eine Eingabe ... Du musst einen Primärschlüssel für die Tabelle definieren ...

Oh ich glaub ich hab nochmal eine Eingabe ... man könnte danach googeln.

Naja.. mal ehrlich, ein bisschen Eigeninitiative ist wohl kaum zu viel verlangt.

Schon die Frage mit dem Index konntest NUR DU beantworten. Jürgen hat dich noch sehr aufmerksam daraufhin gewiesen - wie in diesem Fall der Kompilier.

Gruß