我有一个数据表,我必须分配一个主键,如果它还没有。我尝试过:如何检查是否datatable.PrimaryKey设置
if (ds.Tables[0].PrimaryKey == null)
{
ds.Tables[0].PrimaryKey = new DataColumn[] { dt.Columns["Naam"] };
}
但PrimaryKey(在这种情况下)不为null。当我检查它包含:{System.Data.DataColumn [0]}我如何检查?
我有一个数据表,我必须分配一个主键,如果它还没有。我尝试过:如何检查是否datatable.PrimaryKey设置
if (ds.Tables[0].PrimaryKey == null)
{
ds.Tables[0].PrimaryKey = new DataColumn[] { dt.Columns["Naam"] };
}
但PrimaryKey(在这种情况下)不为null。当我检查它包含:{System.Data.DataColumn [0]}我如何检查?
看起来它并不难,毕竟我已经尝试过这一点,但显然是做错了什么事,因为当我再次尝试它的工作:
DataColumn[] esl = new DataColumn[] { dt.Columns["Naam"] };
if (ds.Tables[0].PrimaryKey == null || ds.Tables[0].PrimaryKey == esl)
{
ds.Tables[0].PrimaryKey = new DataColumn[] { dt.Columns["Naam"] };
}
if (ds.Tables[0].PrimaryKey.Length == 0)
ds.Tables[0].PrimaryKey = new DataColumn[] { dt.Columns["Naam"] };
哈维尔的答案是正确的,但缺乏解释。所以在这里,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(县)所保持的列集合通过PrimaryKey属性。
您好,请为您的答案添加一些格式,以便更易读。 – Chaithanya 2017-06-09 18:24:16
你的回答应该包含你的代码的解释和描述它是如何解决问题的。 – AbcAeffchen 2014-11-13 16:10:03