首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图生成一个使用一个标准表和一个链接表的视图时有问题

试图生成一个使用一个标准表和一个链接表的视图时有问题
EN

Stack Overflow用户
提问于 2022-01-04 01:59:13
回答 1查看 41关注 0票数 0

因此,我有一个DGV (DataGridView),它显示了一个患者给出的药物列表。现在,我试图显示药物的名称,而不是DGV中的ID。

DGV图片

当我发现这个问题时,我希望用Table视图来完成这个任务,但是由于某些原因,我无法让它编写只存在于链接表的实例.这与VS ER部分的图片的ER模型

因此,这一切的结果是,它将编写不应该存在的实例,这是一个问题,因为我正在通过名为"ID nalaza“的病人检查的ID筛选药物。

查看数据(总共有50+实例)

虽然这两个表是我试图连接表实例的表

关于如何解决这个问题,有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2022-01-04 06:13:24

您可以使用DataGridView组合框来完成此操作。您可能需要调整下面的一些建议,因为您没有发布任何代码

假设我们有病人和药物,而病人有。MedicineId给他们吃的药。实际上,这可能有很多:许多关系(许多病人服用相同的药物,同样的病人服用了许多药物),但DGV不能显示这种情况,为此您必须重复行,这是一种不同的技术--让我们现在有一个显示病人和药物的DGV,然后您可以扩展它以显示该病人以后的多行

所以你的DGV显示了你的病人的身份,名字,药物:

代码语言:javascript
复制
DGV.DataSource = context.Patients
  .Where(p => p.Name == "John")
  .Select(p => new PatientViewModel(p.Id, p.Name, p.MedicineId))
  .ToList()

在DGV中添加另一列:

代码语言:javascript
复制
var dgvcbc = new DataGridViewComboBoxColumn();
dgvcbc.HeaderText = "Medicine";
dgvcbc.DataMember = "MedicineId";  //the name of the column in the patients table
dgvcbc.ValueMember = "Val"; // the name of the property representing the medicine Id in the anonymous type below
dgvcbc.DisplayMember = "Disp"; // the name of the property in the AT below, representing the text to show in the combo 
dgvcbc.DataSource = context.Medicines
  .Select(m => new { Val = m.Id, Disp = m.Name } )
  .ToList();  //a query that generates a key value pair into an AT for use with Display/Value newbies above

组合体将从病人处读取药物Id,并查找要显示的文本。如果您更改组合框(选择另一项),则组合框将将新药Id推入患者列表--这是双向“绑定”。

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

https://stackoverflow.com/questions/70573339

复制
相关文章

相似问题

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