DataGrid项目来源于使用LINQ的SQL数据库中的加入表 [英] DataGrid itemsSource from Joined Tables in SQL Database using LINQ
本文介绍了DataGrid项目来源于使用LINQ的SQL数据库中的加入表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的SQL Server Express数据库中有这些表。
i have these tables in my SQL Server Express database.
我的目标是使用 RelCU 表加入 UserInfo 表,并将结果显示在 wpf DataGrid 。
my aim is to join "UserInfo" table with "RelCU" table and display the result in a wpf DataGrid.
我尝试过这些代码,但在运行项目时出错。
i tried these codes but got an error while running the project.
IQueryable<RelCU> Query = from u in dbEntities.UserInfoes
join m in dbEntities.RelCUs
on u.UserID equals m.UserID into temp
from j in temp.DefaultIfEmpty()
select j;
DataGridRegisteredUsers.ItemsSource = Query;
XAML:
<DataGrid x:Name="DataGridRegisteredUsers" IsReadOnly="True" AutoGenerateColumns="False" HorizontalContentAlignment="Stretch" Margin="0,0,-1,-1"
FlowDirection="RightToLeft" Opacity="0.9" FontFamily="B Nazanin" FontSize="15">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=UserInfoes.UserID}" IsReadOnly="True"
Header="ID" />
<DataGridTextColumn Binding="{Binding Path=UserInfoes.FirstName}"
Header="First Name" />
<DataGridTextColumn Binding="{Binding Path=UserInfoes.LastName}"
Header="Last Name" />
<DataGridTextColumn Binding="{Binding Path=RelCUs.Score}"
Header="Score" />
<DataGridTextColumn Binding="{Binding Path=RelCUs.Status}"
Header="Status" />
</DataGrid.Columns>
</DataGrid>
谢谢!
推荐答案
您正在使用 LEFT JOIN
和 select j
,所以 j
可以为null:
You are using LEFT JOIN
, and select j
, so j
can be null :
IQueryable<RelCU> Query = from u in dbEntities.UserInfoes
join m in dbEntities.RelCUs
on u.UserID equals m.UserID into temp
from j in temp.DefaultIfEmpty()
select new
{
ID=u.UserID,
FirstName=u.FirstName,
LastName=u.LastName,
Score = j == null? 0 : j.Score,
Status = j == null? "" :j.Status
};
DataGridRegisteredUsers.ItemsSource = Query;
XAML:
<DataGrid x:Name="DataGridRegisteredUsers" IsReadOnly="True" AutoGenerateColumns="False" HorizontalContentAlignment="Stretch" Margin="0,0,-1,-1"
FlowDirection="RightToLeft" Opacity="0.9" FontFamily="B Nazanin" FontSize="15">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=ID}" IsReadOnly="True"
Header="ID" />
<DataGridTextColumn Binding="{Binding Path=FirstName}"
Header="First Name" />
<DataGridTextColumn Binding="{Binding Path=LastName}"
Header="Last Name" />
<DataGridTextColumn Binding="{Binding Path=Score}"
Header="Score" />
<DataGridTextColumn Binding="{Binding Path=Status}"
Header="Status" />
</DataGrid.Columns>
</DataGrid>
这篇关于DataGrid项目来源于使用LINQ的SQL数据库中的加入表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文