我有一个gridview,最初我是从一个表中绑定数据(表1),它很简单
gvUsers.dataSource = class.getUsers()
gvUsers.databind()
Function getUsers () As List (Of Users)
Return (From X in Table1 Select x).ToList()
End Function
但是,我的一些数据指向另一个表,表之间没有关系(没有外键)
Table 1
UID Name Age Blood Type Test Type
1 Sam 22 2 3
2 Jane 23 2 4
表2
ID Domain Code Description
1 Blood Type A A
2 Blood Type B B
3 Test Type 1 1
4 Test Type 2 2
目前在gridView中我看到Blood Type为值2和Test type 3,4(第二个表ID),但我应该得到表2中的Code列值。 我如何加入这两个表 - 我知道是否有外键但是列名与行数据名称相等的事实让我很难弄明白!
干杯
答案 0 :(得分:0)
试试这个:
select table1.*, table2.* from table1
inner join table2 on table1.Blood Type = table2.id
您可以从两个表中选择所需的列。
答案 1 :(得分:0)
尝试代码
var result = (from p in Table1.AsEnumerable()
join Blood in Table2.AsEnumerable() on p.BloodType equals Blood .ID
join Test in Table2.AsEnumerable() on p.TestTyoe equals Test .ID
select new With
{
uid = p.UID,
Name = p.name,
Age = p.age,
BloodType = Blood.Code,
TestType = Test .Code
}).ToList();
Sql Query IS:
select UID ,Name,Age,B.Code as BloodType ,T.Code as TestType From Table1
inner join Table2 B on Table1.BloodType = B.ID
inner join Table2 T on Table1.TestType= T.ID
使用过的Vb然后
Dim result = from p in Table1.AsEnumerable()
join Blood in Table2.AsEnumerable() on p.BloodType equals Blood .ID
join Test in Table2.AsEnumerable() on p.TestTyoe equals Test .ID
select
p.UID,
p.name,
p.age,
Blood.Code,
Test.Code
gvUsers.DataSource = result