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
DataTable.AutoIncrement
Paratrooper
myCSharp.de - Member

Avatar #avatar-1887.gif


Dabei seit:
Beiträge: 22
Herkunft: LA

Themenstarter:

DataTable.AutoIncrement

beantworten | zitieren | melden

Hi,

probiert mal folgendes aus:

Window-Projekt anlegen.
DataGrid erzeugen (heißt bei mir dg).

Instanzvariable erzeugen:
System.Data.DataTable dt = new DataTable();

Im Konstruktor folgendes eingeben:
this.dt.Columns.Add("Nr.", System.Type.GetType("System.Int32"));
this.dt.Columns[0].ReadOnly = true;
this.dt.Columns[0].AutoIncrement = true;
this.dt.Columns.Add("Produkt");
this.dg.DataSource = this.dt;

Projekt starten.

Mir ist folgendes aufgefallen: Ich kann im DataGrid Daten eingeben. Es wird auch richtig mitgezählt (0, 1, 2, 3, 4 usw.).
Wenn ich nun mit der Pfeil-Taste eine Zeile nach oben gehe und dann wieder eine nach unten, stimmt die Nummerierung nicht mehr.
Beispiel: Ich gebe irgend etwas ein und drücke ENTER. DataGrid erzeugt eine neue Zeile. In der Spalte "Nr." steht jetzt ne 1. Ich gehe mit der Pfeiltaste nach oben und dann wieder nach unten. Nun steht in der zweiten Zeile eine 2 obwohl eine 1 stehen müßte (nach 0 kommt die 1). Komisch...

Wie bringe ich C# bei, richtig zu Zählen?

Servus...
Paratrooper.
private Nachricht | Beiträge des Benutzers
suny
myCSharp.de - Member



Dabei seit:
Beiträge: 127
Herkunft: Thüringen

beantworten | zitieren | melden

Das DataGrid sollte das Ereignis "CurrentRowChanged" (oder so ähnlich) werfen, dort kannst du auch glleich schauen ob sinnvolle Werte eingegebn wurden. Aber wichtiger ist das hier ein AcceptChanges() von der Tabelle aufgerufen wird. Damit werden alle Änderungen für endgültig übernohmen.

Könnte aber später zu einem Problem werden, wenn du die Daten in eine Datenbank speichern willst.
private Nachricht | Beiträge des Benutzers
Paratrooper
myCSharp.de - Member

Avatar #avatar-1887.gif


Dabei seit:
Beiträge: 22
Herkunft: LA

Themenstarter:

beantworten | zitieren | melden

Hi Sunny,

Danke für die Tipps.
Ich habe das Problem trotzdem nicht lösen können.

Da ich die Daten in eine XML-Datei speichern will (DataSert.WriteXML), laufe ich kurz vorm Speicher die Tabelle durch und sorge für eine korrekte Nummerierung (Ist zwar nicht die feine englische Art aber immerhin eine Lösung).

Servus...
Paratrooper.

PS: Das Ereignis "CurrentRowChanged" wir im DataTable und nicht in DataGrid ausgelöst.
private Nachricht | Beiträge des Benutzers