删除数据表中的主键

时间:2011-08-09 09:36:34

标签: c# asp.net visual-studio datatable

有没有办法从数据表中删除主键或者有没有办法首先删除“PK”的约束然后删除列本身?

谢谢!

更新:

 dtTable.Columns.Add(new System.Data.DataColumn("PRIMARY_KEY", typeof(System.Int32)));
 dtTable.PrimaryKey = new DataColumn[1] { dtTable.Columns["PRIMARY_KEY"] }; // throws an error
 dtTable.Columns["PRIMARY_KEY"].AutoIncrement = true;

2 个答案:

答案 0 :(得分:19)

您可以使用

删除主键
DataTable.PrimaryKey = null;

您可以使用

删除数据表列
DataTable.Columns.Remove("column name here");

答案 1 :(得分:2)

我发现有时从DataTable中删除了PrimaryKey:

MyDataTable.PrimaryKey = null;

唯一设置在已删除的PrimaryKey的成员列中保持为真。

我的解决方案:

 public static void KillPrimaryKey(DataTable LocDataTable)
{
  int LocPriKeyCount = LocDataTable.PrimaryKey.Length;
  string[] PrevPriColumns = new string[LocPriKeyCount];

  // 1. Store ColumnNames in a string Array
  for (int ii = 0; ii < LocPriKeyCount; ii++) PrevPriColumns[ii] = LocDataTable.PrimaryKey[ii].ColumnName;
  // 2. Clear PrimaryKey
  LocDataTable.PrimaryKey = null;
  // 3. Clear Unique settings
  for (int ii = 0; ii < LocPriKeyCount; ii++) LocDataTable.Columns[PrevPriColumns[ii]].Unique = false;
}