Hallo,
Ich habe eine Tabelle mit Einträgen, die eine ID automatisch bekommen sollten. Die Bedingung ist hier, dass sie mit bspw. 5 (kann auch was anders sein) anfangen soll, dann kommt die eigentliche Nummer, die durchläuft. Für einen neuen Eintrag wird immer die nächste nach dem Maximum genommen. Hier ist meine Lösung:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| int IndexMax = new int(); var values = dataSetPro.Tables["Parameters"].Rows.OfType<DataRow>(); if (values.Count() == 0) { IndexMax = 0; newRow["ParameterID"] = 51; } else { String[] IndexMaxS = Convert.ToString(values.Max(x => x.Field<int>("ParameterID"))).Split('5'); IndexMax = Convert.ToInt32(IndexMaxS[1]); newRow["ParameterID"] = Convert.ToInt32("5" + Convert.ToString(IndexMax + 1)); }
dataSetPro.Tables["Parameters"].Rows.Add(newRow); |
Das Problem wird mit der Lösung gleich sichtbar - wenn die ID außer der ersten "5" noch weitere Fünfer in der Nummer hat, funktioniert es nicht mehr. Irgendwie finde ich aber keine andere einfache Lösung. Hat jemand vielleicht ne Idee?
Vielen Dank im Voraus,
Dina