Ответ Хавьера верен, но ему не хватает объяснения.Итак, вот, свойство DataTable.PrimaryKey является коллекцией DataColumns.Если свойство DataTable PrimaryKey не установлено, то длина коллекции будет равна 0. Если DataTable имеет одно или несколько полей, определенных как первичный ключ, это будет отражать длина свойства PrimaryKey.Таким образом, проверка следующим образом:
if (ds.Tables[0].PrimaryKey.Length == 0)
сообщит нам, не добавлены ли столбцы для представления первичного ключа, а часть
ds.Tables[0].PrimaryKey = new DataColumn[] { dt.Columns["Naam"] };
фактически добавит DataColumn (s) в коллекциюстолбцов, хранящихся в свойстве PrimaryKey.