Как определить столбец VB.NET DataTable как первичный ключ после создания

Я импортирую таблицу от Oracle DataBase, с помощью VB.NET dataAdapter. Я использую команду "заливки", чтобы добавить импортированные данные к DataSet. Как возможно определить определенный столбец DataTable как PrimaryKey, после того, как DataTable будет уже переполнен данными?

8
задан Brian Tompsett - 汤莱恩 27 November 2015 в 13:56
поделиться

2 ответа

Вы можете установить первичный ключ таблицы следующим образом:

    Dim table As New DataTable()

    table.Columns.Add(New DataColumn("MyColumn"))

    Dim primaryKey(1) As DataColumn
    primaryKey(1) = table.Columns("MyColumn")
    table.PrimaryKey = primaryKey

Чтобы иметь возможность использовать первичный ключ, вам необходимо убедиться, что все значения для данный столбец уникален.

Я в основном работаю на C #, и у меня есть несколько методов расширения, которые я использую для "упорядочивания" вызовов, которые мне нужно сделать, которые вы можете рассмотреть, переведя их в VB и используя:

    public static void SetPrimaryKey(this DataTable value, string columnName)
    {
        value.PrimaryKey = new DataColumn[] { value.Columns[columnName] };
    }

    public static DataRow FindByPrimaryKey(this DataTable value, object key)
    {
        return value.Rows.Find(key);
    }

    // I can then do:

    DataTable table = CallToRoutineThatGetsMyDataTable();
    table.SetPrimaryKey("PKColumnName");
    DataRow result = table.FindByPrimaryKey("valueToFindWith");
6
ответ дан 5 December 2019 в 05:55
поделиться

Если значения в столбце уникальны

table.PrimaryKey = new DataColumn[] { table.Columns["Id"] };

настройте имена столбцов.

11
ответ дан 5 December 2019 в 05:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: