Sice s křížkem po funuse, ale řešil jsem stejný problém a řekl bych že jsem to vyřešil elegantněji než je cyklus, takže se chci podělit, třeba se to bude někomu hodit. Každý sloupec v DataTable (tzn. DataColumn) má vlastnost AutoIncrement, takže pokud plníte dataTable pomocí metody Fill vložte do datatable ještě před voláním metody Fill nový sloupec a nastavte příslušné vlastnosti:
'vytvoření nového sloupce
Dim sloupecCislo As DataColumn = New DataColumn
sloupecCislo.ColumnName = "RowNumber"
sloupecCislo.DataType = Type.GetType("System.Int32")
sloupecCislo.AutoIncrement = True
sloupecCislo.AutoIncrementSeed = 1
sloupecCislo.AutoIncrementStep = 1
'přidání sloupce do dataTable
myDataTable.Columns.Add(sloupecCislo)
Výhoda je že si můžete nastavit počáteční hodnotu, velikost přírustku a také Unique, což může do jistné míry pro interní účely aplikace suplovat absenci PK i když by tam správně většinou měl být:) A hlavně tento způsob není závislý na způsobu plnění dataTable, takže pokud později přidáte do dataTable další řádky, číslo řádku se doplní aniž by jste museli znovu spouštět cyklus na číslování.
|