【问题标题】:Data grid view show one to one relationship数据网格视图显示一对一关系
【发布时间】:2015-05-16 10:39:33
【问题描述】:

我在两个表之间有这样的一对一关系:

人员:身份证、名字、姓氏、出生日期

人员信息:人员 ID、地址、电子邮件、手机

我想在数据网格视图中显示用户的名字、姓氏和电子邮件, 当我试图将 person 对象与数据网格视图数据源绑定时,像这样

grdPerson.DataSource = objPerson;

我得到了所有的人员对象列,但是我得到一个空的人员信息对象列,那么我如何显示电子邮件和移动字段?

【问题讨论】:

  • 你使用 Linq 吗?是数据库中的关系(主键和外键)吗?您可以使用 POCO 类,还是扩展您当前的类 Person?或者,最好的解决方案可能是在数据库上创建视图,其中包含您需要的所有字段,并使用该视图来填充 DataDrid(我在我的解决方案中使用它)。
  • 我正在使用 ADO.net 实体模型,我正在处理自动生成的代码。
  • 我会尝试做一些事情,比如“e.personinfo.mobile”。如果失败,您可以使用临时的“POCO”类,它将每个字段单独映射(创建一个类,将 Person 和 Person Info 中的所有字段作为原始类型)。改变,你可以使用视图。在 db 中加入该关系,并在您的应用程序视图中使用(主对象和字典作为一个 obj)。我在 Reporting Services 中使用了这种方法(网络数据网格非常智能)。
  • 我不想使用 POCO,我认为将这两个表放在一个表中是最好的解决方案,或者创建一个视图来连接这两个表,你怎么看?
  • 在您的情况下,两种解决方案都很好。如果加入这些表不会破坏规范化规则,您可以将它们加入一个表。如果加入它们会破坏规范化规则,请使用视图。

标签: c# winforms


【解决方案1】:

在您的情况下,两种解决方案都很好。如果加入这些表不会破坏规范化规则,您可以将它们加入一个表。如果加入它们会破坏规范化规则,请使用视图。

如果有帮助,您可以将此答案标记为解决方案。

【讨论】:

    猜你喜欢
    • 2018-08-12
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    • 2020-09-21
    • 2020-03-24
    • 1970-01-01
    • 2018-11-06
    • 2017-01-06
    相关资源
    最近更新 更多