2015-04-17 66 views
0

我有這個代碼,它連接3個表格,並在gridview中綁定結果,我有一個搜索欄,如果鍵盤包含在contacto.nombre然後我想添加該對象到列表中。 我讀我必須使用包含。如何把在哪裏在linq select語句的搜索欄

public void SearchButtonClick(String keyword){ 
    using (ProfesionalesEmpresasEntities bd = new ProfesionalesEmpresasEntities()) 
    { 
     var resultado = (from contacto in bd.Contactos 
      join departamento in bd.DEPARTAMENTOS on contacto.id_departamento equals departamento.Id_dpto 
      join localidad in bd.LOCALIDADES on contacto.id_localidad equals localidad.Id_Localidad 
      join profesion in bd.Profesiones on contacto.id_profesion equals profesion.id_Profesion 
      select new 
      { 
       Nombre = contacto.nombre, 
       Apellido = contacto.apellido, 
       Direccion = contacto.direccion, 
       Empresa = contacto.empresa, 
       Mail = contacto.mail 
      }).ToList(); 

     grdContactos.DataSource = resultado; 
     grdContactos.DataBind(); 
    } 
} 

回答

0
public void SearchButtonClick(String keyword){ 
    using (ProfesionalesEmpresasEntities bd = new ProfesionalesEmpresasEntities()) 
    { 
     var resultado = (from contacto in bd.Contactos 
      join departamento in bd.DEPARTAMENTOS on contacto.id_departamento equals departamento.Id_dpto 
      join localidad in bd.LOCALIDADES on contacto.id_localidad equals localidad.Id_Localidad 
      join profesion in bd.Profesiones on contacto.id_profesion equals profesion.id_Profesion 
      select new 
      { 
       Nombre = contacto.nombre, 
       Apellido = contacto.apellido, 
       Direccion = contacto.direccion, 
       Empresa = contacto.empresa, 
       Mail = contacto.mail 
      }) 
      .Where(x=>x.Direccion.Contains(keyword)) 
      .ToList(); 

     grdContactos.DataSource = resultado; 
     grdContactos.DataBind(); 
    } 
} 
+0

有使用查詢語法另一種方式,但我怕我不知道,因爲我從來沒有使用的查詢語法。最有可能像'where contacto.direccion.Contains(keyword)'放在'select new'之前 –