新添加到Access数据库的数据在查询中不起作用

时间:2016-01-14 18:16:27

标签: c# database ms-access

所以这个星期一,我尝试运行以下查询并且它有效:

SELECT 
    DatumOntslag, p.Naam, d.Naam, med.ID, m.Naam, HoeVaakPerDag 
FROM 
    Patient p, Diagnose d, Medicatie med, Medicijn m 
WHERE 
   p.DiagnoseID = d.ID 
   AND med.PatientID = p.ID 
   AND med.MedicijnID = m.ID 
   AND p.ID = " + lbPatientsID.SelectedItem.ToString();  

在此,lbPatientsId.SelectedItem.ToString()是我程序中的变量。现在,如果我打开我的Access数据库并向表中添加一行新数据" Patient"我尝试运行该查询,但它不起作用。但是,当我使用旧患者的ID运行查询时,它确实有效。

这有效(今天之前创建的p.ID(患者ID)):

SELECT 
    DatumOntslag, p.Naam, d.Naam, med.ID, m.Naam, HoeVaakPerDag 
FROM 
    Patient p, Diagnose d, Medicatie med, Medicijn m 
WHERE 
    p.DiagnoseID = d.ID 
    AND med.PatientID = p.ID 
    AND med.MedicijnID = m.ID 
    AND p.ID = 21;

这不起作用(今天创建p.ID(患者ID)):

SELECT 
    DatumOntslag, p.Naam, d.Naam, med.ID, m.Naam, HoeVaakPerDag 
FROM 
    Patient p, Diagnose d, Medicatie med, Medicijn m 
WHERE 
    p.DiagnoseID = d.ID 
    AND med.PatientID = p.ID 
    AND med.MedicijnID = m.ID 
    AND p.ID = 31; 

2 个答案:

答案 0 :(得分:0)

因此,引用

lbPatientsID.SelectedItem.ToString()

,它将传递为" lbPatientsID.SelectedItem.ToString()"。

所以,如果你想让它工作

P.ID = "{Some selected value}"

这样做:

SELECT DatumOntslag, p.Naam, d.Naam, med.ID, m.Naam, HoeVaakPerDag 
FROM  Patient p, Diagnose d, Medicatie med, Medicijn m 
WHERE p.DiagnoseID = d.ID 
AND med.PatientID = p.ID 
AND med.MedicijnID = m.ID 
AND p.ID = " "+ lbPatientsID.SelectedItem.ToString();  

然后我认为它会像你想要的一样工作。

答案 1 :(得分:0)

由于p.ID被比较为31,我想这应该有用(应该显示数据)

SELECT DatumOntslag, p.Naam, d.Naam, med.ID, m.Naam, HoeVaakPerDag 
    FROM Patient p, Diagnose d, Medicatie med, Medicijn m 
    WHERE p.DiagnoseID = d.ID AND med.PatientID = 31
        AND med.MedicijnID = m.ID AND p.ID = 31; 

或者也尝试让你的限制更少

WHERE 
    p.DiagnoseID = d.ID AND med.PatientID = 31
--  AND med.MedicijnID = m.ID AND p.ID = 31; 

WHERE 
--  p.DiagnoseID = d.ID AND med.PatientID = 31
--  AND 
    med.MedicijnID = m.ID AND p.ID = 31; 

还尝试删除WHERE使用TOP以避免重载DataBase

SELECT TOP 10 DatumOntslag, p.Naam, d.Naam, med.ID, m.Naam, HoeVaakPerDag 
    FROM Patient p, Diagnose d, Medicatie med, Medicijn m 
    WHERE p.DiagnoseID = d.ID AND med.MedicijnID = m.ID