【发布时间】:2018-11-21 15:26:21
【问题描述】:
从 Linq 查询创建数据表 我使用 Ling 在 dataGridview 上显示我的数据,并且我有 linq 搜索功能来搜索人员。它工作正常,但不像 Datatable 那样。我必须在我的 serch 函数给我取名之前写下洞名。我想从 Linq 查询创建一个数据表,但我不知道该怎么做。 这是我的代码:
public void SerachdataEmp(string name)
{
db = new EmployeeEntity();
var result = (from u in db.Employee
join d in db.Department on u.DepartmentId equals d.DepartmentId
where u.FirstName == name
select new
{
FirstName = u.FirstName,
LastName = u.LastNameName,
DepartmentName = d.DepartmentName
}
}).Tolist();
dataGridView1.DataSource = result;
我试过这样
(from u in db.Employee.AsEnumerable()
join d in db.Department.AsEnumerable() on u.DepartmentId equals d.DepartmentId
where u.FirstName == searchEmployee
but then I don't know how to do. Thank you in advance!
【问题讨论】:
-
我相信
DataGridView应该支持匿名类型——当你使用你的代码时会发生什么? -
不像 Datatable 那样什么意思?您已经拥有可用于执行各种搜索的一切。一个 DataTable 增加了什么?
-
@Gert Arnold,感谢您的回复。如果我有一个以 A 或 B 开头的名称,那么它只会在我写孔名称时显示,它不会在开头进行过滤。但是如果是带有 SqlConnecting 的 Datatable ,那么我只需要输入例如“Johannes”我只是需要输入 J 然后在我输入“Johannes”之前显示所有以 J 开头的名字。但是现在我必须把“约翰内斯”告诉我所有叫约翰内斯的人。对不起,如果我让你感到困惑..;)
-
看,DataTable 没有做任何事情。如果您将它用于选择查询,那么它就是完成这项工作的查询。您只是有一个不同的查询,其中包含类似
StartsWith的内容。你可以在 LINQ 中做同样的事情 (u.FirstName.StartWith...) -
@GertArnold 你的意思是像这样的 u.FirstName.StartsWith == 用户名吗?