Sql 如果没有患者有诊断类型,则不显示任何内容

Sql 如果没有患者有诊断类型,则不显示任何内容,sql,vb.net,ms-access,visual-studio-2019,Sql,Vb.net,Ms Access,Visual Studio 2019,我写了一段代码,显示了一个表单,其中包含了人们可能遇到的所有类型的现有诊断。 我可以从组合框中选择诊断,该组合框将 A:显示诊断信息 和 B:显示所有已经有这种诊断的患者 问题:如果没有患者已经有这种类型的诊断,列表框中的值应为“空”。 不幸的是,它显示的是“代码”,而不是什么都没有 这是我的密码: Private Sub Diagnoses_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.Tbl_Do

我写了一段代码,显示了一个表单,其中包含了人们可能遇到的所有类型的现有诊断。 我可以从组合框中选择诊断,该组合框将 A:显示诊断信息 和 B:显示所有已经有这种诊断的患者

问题:如果没有患者已经有这种类型的诊断,列表框中的值应为“空”。 不幸的是,它显示的是“代码”,而不是什么都没有

这是我的密码:

Private Sub Diagnoses_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Me.Tbl_DossiersTableAdapter.Fill(Me.PatientenDatabaseDataSetX.tbl_Dossiers)
        Me.Tbl_DiagnosesTableAdapter.Fill(Me.PatientenDatabaseDataSetX.tbl_Diagnoses)
        Dim dt = Tbl_DiagnosesBindingSource
        cboxDiagnose.DataSource = dt
        cboxDiagnose.DisplayMember = "Diag_Type"
        cboxDiagnose.ValueMember = "Diag_ID"
        txtDiagnoseBeschrijving.Text = dt(0)("Diag_Type").ToString
        cboxDiagnose.Focus()

    End Sub
    Private Sub CboxDiagnose_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles cboxDiagnose.SelectionChangeCommitted
        txtDiagnoseBeschrijving.Text = DirectCast(cboxDiagnose.SelectedItem, DataRowView)("Diag_Beschrijving").ToString
        Dim cn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\GoogleDrive\EINDWERK VBNET\PatientenDatabase.accdb")
        cn.Open()
        Dim ssql As String = "Select rel_id, tbl_Relaties.Rel_Naam &' ' & Rel_Voornaam as totaleNaam " &
            "From tbl_Relaties INNER Join (tbl_Dossiers INNER Join tbl_DossRelatie On " &
            "tbl_Dossiers.Dos_ID = tbl_DossRelatie.DR_DossID) ON tbl_Relaties.Rel_ID = tbl_DossRelatie.DR_RelID WHERE Diag_ID = " & cboxDiagnose.SelectedValue

        Dim cmmd As New OleDb.OleDbCommand(ssql, cn)
        Dim dr As OleDb.OleDbDataReader
        dr = cmmd.ExecuteReader
        Bs_relaties.DataSource = dr
        If dr.HasRows Then
            Application.DoEvents()
            Bs_relaties.DataSource = dr
            lboxPat_Diagcombo.DisplayMember = "totaleNaam"
            lboxPat_Diagcombo.ValueMember = "Rel_ID"
        Else
            'lboxPat_Diagcombo.text = "" 
'this is the part where i don't know what to fill in
        End If
        cn.Close()
    End Sub
列表框中的值为“system.data.oledb.oledbDataReader” 但是如果没有使用这种类型的诊断,我不想显示任何数据,或者至少在框中显示一条消息,上面写着“以前没有患者进行过这种诊断”


谢谢你对这件事的任何建议或提示

如果使用Diag_Id执行ssql命令,该命令不应通过Access中的查询接口返回任何记录,结果会是什么?您是说组合框(下拉菜单)应仅显示正在使用的现有诊断类型的选项吗?组合框应显示所有诊断,文本框将显示诊断基本信息,列表框显示所有诊断为该病的患者。如果没有发现有此诊断的患者,列表应为空,并且不显示行“system.data.oledb.oledbDataReader”此图像可以提供清晰度:access中的查询显示Nothing?不确定原因,因为我从未像您在这里所做的那样将任何内容直接绑定到数据读取器。也许最好的解决方案是使用数据读取器加载DataTable对象,然后注意控制。此外,还有一点。应用程序调用的原因是什么。当我看到这些的时候,我总是有点害怕