为表设置主键?

时间:2019-01-23 09:36:21

标签: c# arrays datatable primary-key

        DataTable tbl =  view.ToTable();
        DataColumn[] pk = new DataColumn[table2.PrimaryKey.Length];

        var names = table2.PrimaryKey.Select(column => column.ColumnName).ToArray();


        for (int i = 0; i < table2.PrimaryKey.Length; i++)
        {
            tbl.PrimaryKey[i] = tbl.Columns[names[i]];
        }



        tbl.PrimaryKey = pk;

我想为表格设置所有主键,女巫保存在变量名中。

我有两个缩进。表,我想设置相同的主键...

1 个答案:

答案 0 :(得分:0)

您应使用以下代码。请注意,我已经在循环中注释了您的代码,并且循环还在names而不是DataTable主键上进行了迭代。

我假设DataTable tbl已包含其列名在names数组中的所有列。

    DataTable tbl =  view.ToTable();
    DataColumn[] pk = new DataColumn[table2.PrimaryKey.Length];

    var names = table2.PrimaryKey.Select(column => column.ColumnName).ToArray();


    for (int i = 0; i < names.Length; i++)
    {
        //tbl.PrimaryKey[i] = tbl.Columns[names[i]];
         pk[i] = tbl.Columns[names[i]]; 
    }


    tbl.PrimaryKey = pk;