首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何跳过DataRow插入,如果主键在.NET DataTable中被违反

如何跳过DataRow插入,如果主键在.NET DataTable中被违反
EN

Stack Overflow用户
提问于 2015-03-27 18:18:28
回答 2查看 828关注 0票数 0

我有下面的带有复合主键的DataTable。第四次,通过for循环,复合键将被违反。我如何说,如果此行将导致密钥被违反,不要将其添加到DataRowCollection中?我只希望DataTable中基于这三个键的行是唯一的。谢谢

代码语言:javascript
运行
复制
DataTable DTRejects = new DataTable("RejectedInvoicesDT");
DTRejects.PrimaryKey = new DataColumn[]
                      {
                          DTRejects.Columns.Add("OperatorName"),
                          DTRejects.Columns.Add("ProcessType"),
                          DTRejects.Columns.Add("RejectedReason")
                       };

  for (int i = 0; i < RowIndex; i++)
  {
  if (arrStatus[i].ToString() == "Rejected")
    {
        DataRow DRRejects = DTRejects.NewRow();
            DRRejects[0] = arrOperatorName[i].ToString();
            DRRejects[1] = arrProcessType[i].ToString();
            DRRejects[2] = arrRejectedReason[i].ToString();
    DTRejects.Rows.Add(DRRejects);
}
 }
EN

Stack Overflow用户

发布于 2015-03-27 18:35:28

您正在使用DataTable的泛型类型,但如果创建强类型化数据集,也可以使用设计器创建强类型化DataTables。

在强类型datatable上,可以使用设计器定义主键。可以启用或禁用约束检查。您可以很容易地使用find方法根据主键值的值在表中查找。

因此,如果密钥已经存在,将很容易检测到。当然,使用linq也很容易,因为user2864740在他的回答中表示,但我在linq存在之前就已经使用了强类型化数据集,而且它们也能工作,结果是非常可读的代码。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29307562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档