Hallo, ich habe heute zum ersten Mal mit einer DataTable in C# (Visual Studio 2010) gearbeitet. Oft habe ich in der ersten Spalte eine eindeutige ID der Tabellen. Da ich diese so eingestellt habe, dass der Wert bei neuen Zeilen automatisch inkrementiert wird, wollte ich diese Spalte als Readonly einstellen. Wenn ich aber eine neue Zeile anfuege, muss ich einen Wert fuer diese Zelle uebergeben und dieser wird auch noch in die Zelle geschrieben. Die automatische Inkrementieren erfolgt hier bei nicht. Kann mir jemand einen Tipp dazu geben? Danke
Hallo Matias, mit
1 | DataColumn dc = new DataColumn("Eins"); |
2 | dc.AutoIncrement = true; |
3 | dc.AutoIncrementStep = 1; |
4 | dc.ReadOnly = true; |
5 | dt.Columns.Add(dc); |
wird die erste Spalte problemlos incrementiert. Wie fügst du die neuen Zeilen denn hinzu? Ich mache das ganze immer über:
1 | DataRow dr = dt.NewRow(); |
2 | dr["Zwei"] = "Test"; |
3 | dt.Rows.Add(dr); |
dt ist in diesem Fall meine DataTable. Viele Grüße, Christoph
Hi Christoph, sorry fuer die verspaetete Antwort. Danke fuer deine Info. Das AutoInkrement funktioniert mittlerweile. Allerdings nicht wie erwartet. Ich bin davon ausgegangen, dass die "autoinkrementierte" ID um den Wert in AutoIncrementStep inkrementiert wird. Allerdings habe ich zwischen meinen IDs zum Teil eine Inkrementierung von mehr als 100. Ich kann mir das Verhalten anhand meines Codes noch nicht erklaeren. Wenn ich eine neue Zeile in eine Tabelle einfuege, weisse ich der "autoinkrement" Zellen selbst ja keinen Wert zu. Prinzipiell ist das kein Problem, da es sich sowieso nur im eine ID handelt, mit der der Anwender nie arbeitet. Aber ich weiss noch nicht, wie sich die Inkrementierung zukuenftig verhaelt und will nicht, dass damit ein Overflow ausgeloest wird. Vielen Dank Mathias
Hi Mathias, ... und jetzt hab ich etwas länger gebraucht um zu antworten.. ;) da fällt mir jetzt leider nichts mehr zu ein. Zumindest nichts, ohne einen Einblick in den Code zu haben. Die einzige Idee wäre noch, dass deine Autoincrement-Spalte den falschen Datentyp hat, wobei ich mir da nicht sicher bin, ob das ganze dann überhaupt funktionieren würde. Außerdem erklärt das dann trotzdem nicht dieses merkwürdige Verhalten. Prüfe aber vielleicht auch mal den AutoIncrementSeed, da hab ich zwar selbst noch nie was mit gemacht, aber kann ja sein. Du hast ja sicherlich mal durch den Code debuggt, gab es da vielleicht irgendwelche hilfreichen Erkenntnisse? Viele Grüße, Christoph
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.