【问题标题】:How to select records from five tables with conditions and read the records to datagridview如何从有条件的五个表中选择记录并将记录读取到datagridview
【发布时间】:2016-03-09 03:59:02
【问题描述】:

我创建了一个包含 5 个表(personalData、WorkExperience、EducationalData、SpouseData、DependantData)的 Access 数据库

我将 STHN_ID 作为第一个表中的主键和其他表中的外键。我还有一个名为 DateEngaged 的​​列作为日期/时间。

我尝试从 PersonalData 中选择 STHN_ID=00001 并且 DateEngaged 在某个日期范围内并且工作正常。这是我的代码是

Dim rcmd As OleDbCommand = New OleDbCommand("Select STHN_ID FROM PersonalData WHERE ([STHN_ID]='" & STHN_ID.Text & "') and ([DateEngaged]>=CDate('" & FromDate.Value & "') AND [DateEngaged] <=CDate('" & ToDate.Value & "'))", myConnection)

我的问题是从 PersonalData 中读取这些条件并找到一条记录后,它应该继续选择具有该 STHN_ID 的其他表中的所有字段,也就是说,它应该组合所有表中的所有列。我要做的最后一件事是将合并的列读取到 datagridview。

所以在 datagridview 中,我有来自 PersonalData、WorkExperience、EducationalData、SpouseData 和 Dependent 数据的所有列。所以datagridview中的一行将包含从第一个表到最后一个表的所有记录。

这是我尝试过的,但它给出了错误

da = New OleDbDataAdapter("Select * FROM [PersonalData] WHERE [STHN_ID]='" & STHNID.Text & "' AND ([DateEngaged]>=CDate('" & FromDate.Value & "') AND [DateEngaged]<=CDate('" & ToDate.Value & "' JOIN select * from EducationalData where STHN_ID='" & STHNID.Text & "' JOIN select * from WorkExperience where STHN_ID='" & STHNID.Text & "' JOIN select * from SpouseData where STHN_ID='" & STHNID.Text & "' JOIN select * from DependantData where STHN_ID='" & STHNID.Text & "'))", myConnection)

【问题讨论】:

  • 我添加了一张我想要的图片

标签: vb.net datagridview


【解决方案1】:

在 dataAdapter 中使用这个查询:

select PD.STHN_ID
    , PD.NAME
    , PD.DateEngaged
    , ED.NAMEOFSCHOOL
    , WE.EMPLOYER
    , SD.SPOUSENAME
    , DD.DEPENDANTNAME
from PersonalData PD
inner join EducationalData ED on PD.STHN_ID=ED.STHN_ID
inner join SPOUSEDATA SD on PD.STHN_ID=SD.STHN_ID
inner join DEPENDANTDATA DD on PD.STHN_ID=DD.STHN_ID
inner join WORKEXPERIENCE WE on PD.STHN_ID=WE.STHN_ID
WHERE ([PD.STHN_ID]='" & STHN_ID.Text & "')
    and ([PD.DateEngaged]>=CDate('" & FromDate.Value & "') 
    and [PD.DateEngaged] <=CDate('" & ToDate.Value & "'))

【讨论】:

  • 在查询表达式中遇到语法错误(缺少运算符)。顺便说一句,我正在使用 VB,并且我的数据库可以访问。我还应该包括 PD、ED、SD、DD 和 WE 吗?我迷路了
  • 我已根据您的查询和(PD、ED、SD、DD 和 WE)的回答条件更改为 alias。阅读这里,Benefits of using alias
猜你喜欢
  • 2014-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-05
  • 1970-01-01
  • 1970-01-01
  • 2016-03-06
相关资源
最近更新 更多