在linq中选择更新模式下的记录

时间:2012-02-21 07:44:23

标签: c# asp.net linq

我用它来选择记录

public IEnumerable<Employee> SelectEmployeeById(int id)
{
  DataClassesHrPortalDataContext dc1 = new DataClassesHrPortalDataContext(dbConnStr);
  System.Data.Linq.Table<Employee> location = dc1.GetTable<Employee>();

  return dc1.Employees.Where(a => a.emp_id == id);

}

但是如何在中检索记录 但我如何填写文本框中的记录

private void fillsalarydetail()
{
  PioneerDataAccess.EmployeeClass empcls = new PioneerDataAccess.EmployeeClass();

  var obj = empcls.SelectEmployeeById(3);

  //I am not able to do this
  txtSalEmpName.Text=obj.
  txtsalempcode.Text=
}

2 个答案:

答案 0 :(得分:3)

由于 linq不同执行使用tolist方法而不是获取读取数据将为您完成任务

var obj = empcls.SelectEmployeeById(3).ToList(); 
textvox.Text= obj[0].Nameofproperty;

答案 1 :(得分:2)

.Where扩展方法返回IEnumerable List。所以获取Top元素或从列表中获取单个元素。

EmployeeClass Emp  = empcls.SelectEmployeeById(3).ToList();  
if(listofEmp.Count() > 0)
{
EmployeeClass obj = listofEmp[0]; 
or 
EmployeeClass obj = listofEmp.Top(1);
or 
EmployeeClass obj = listofEmp.Single();

//then assign your values to testbox use class properties as:

txtSalEmpName.Text=obj.Name;
txtsalempcode.Text= obj.code;
}

您可以这样做:

EmployeeClass Emp  = empcls.SelectEmployeeById(3).SingleOrDefault();
if(Emp != null)
{
txtSalEmpName.Text=obj.Name;
txtsalempcode.Text= obj.code;
}