#Region "FillListView"
Sub FillListview()
LV.Items.Clear()
myqry = "SELECT AccResult.StudNo,Exercises.ID from AccResult INNER JOIN Exercises ON AccResult.StudNo = Exercises.ID ORDER BY AccResult.FirstName,AccResult.YrandSec Asc;"
mycmd = New OleDbCommand(myqry, con)
con.Open()
mydr = mycmd.ExecuteReader
While mydr.Read
With LV
.Items.Add(mydr("StudNo"))
With .Items(.Items.Count - 1).SubItems
.Add(mydr("CNumber"))
.Add(mydr("FirstName"))
.Add(mydr("LastName"))
.Add(mydr("YrandSec"))
.Add(mydr("Exer1"))
.Add(mydr("Exer2"))
.Add(mydr("Exer3"))
.Add(mydr("Exer4"))
.Add(mydr("Exer5"))
End With
End With
End While
con.Close()
End Sub
#End Region
AccResult
是我的第一个表的名称,Exercises
是第二个表。
我AccResult
的PK为StudNo
,而Exercises
为ID
。
如何将这两个表连接起来显示在ListView
?
AccResult
表:
StudNo (PK)
CNumber
FirstName
LastName
YrandSec
Exercises
表:
ID (PK)
StudNo
Exer1
Exer2
Exer3
Exer4
Exer5
答案 0 :(得分:2)
您的加入条件不正确。
AccResult INNER JOIN Exercises ON AccResult.StudNo = Exercises.ID
使用子表的主键(Exercises.ID)加入父表(AccResult.StudNo)的主键。您需要将父表(AccResult.StudNo)的主键与子表的外键(Exercises.StudNo)连接,即
AccResult INNER JOIN Exercises ON AccResult.StudNo = Exercises.StudNo
答案 1 :(得分:0)
不确定我是否正确地得到了问题,但看起来查询只选择列:
myqry = "SELECT AccResult.StudNo,Exercises.ID from AccResult..."
然后代码尝试显示所有列。请尝试选择所有列:
myqry = "SELECT * from AccResult..."
答案 2 :(得分:0)
试试这个:
myqry = "SELECT AccResult.StudNo,Exercises.ID, Exer1, Exer2, Exer3, Exer4, Exer5 from AccResult INNER JOIN Exercises ON AccResult.StudNo = Exercises.ID ORDER BY AccResult.FirstName,AccResult.YrandSec Asc;"