我正在医院数据库工作,我正在将医院病床装入组合框。我想要做的是,如果已经睡觉了,我想在睡觉后添加(占用)。
有一个房间和床名单表。 101室有三张床。 1001,1002和1003.我已将Bed_No加载到数组中。的 bed_ids_array()
有一张病床占用的桌子。正如您所见,1002和1003被患者占据。我通过while循环 dr(1)
读取了这些数据
我在vb.net中向combobox添加数据,它应该如下所示: 但看起来像这样:
(当使用不同的值重新检查时,从访问数据库中读取数据时会出现相同的数据)
我使用的代码是:
'Check if beds in array have patients
Call connect()
con.Open()
cmd = New OleDbCommand("Select * from Bed_to_Patient_Relation", con)
dr = cmd.ExecuteReader
While dr.Read
'Add all occupied stuff to combobox first
For i = 0 To room_bed_count - 1
'take first bed id and check all database
If bed_ids_array(i) = dr(1) Then
Cmbbx_Beds.Items.Add(bed_ids_array(i) & "Occupied")
Else
Cmbbx_Beds.Items.Add(bed_ids_array(i))
End If
Next
End While
我想要做的是如果找到匹配则将" Occupied" 添加到文本中,否则,只需正常输入
答案 0 :(得分:1)
我建议做一些改变。抛弃组合框以获取数据网格视图。您仍然可以选择所需的行,但可以更好地查看数据。在查询中加入您的两个表,以确定哪些床可用或占用。在患者卧床关系表中包括床和房间ID,或者更好的是,为每张床分配一个唯一的id。占用的表可以允许更有效的连接。
我认为您对现有代码的问题是,您要在每次重新加载框后两次添加列表,或者不清除它。我发现根据查询中的数据填充网格会更有效,例如上面提到的连接。
可能不是你想要的答案。