2014-11-18 2 views
0
SessionIDs ids = (SessionIDs)Session["IDs"]; 
BSDataContext ct = new BSDataContext(); 

var customers = from cust in ct.tblCustomers 
       where cust.AccountID == ids.accountID && drpFilter.SelectedValue.StartsWith(txtSearch.Text.ToString()) 
       join mem in ct.tblCustomerMemberships on cust.CustomerID equals mem.CustomerID 
       select new { cust.CustomerID, cust.Mobile, cust.BusinessPhone, cust.Code, cust.Email, cust.HomePhone, mem.Membership, Name = cust.FirstName + cust.LastName }; 
grdCustomer.DataSource = customers; 
grdCustomer.DataBind(); 

У меня есть запись, которая начинается с Waqar, но не отображается.LINQtoSQL механизм поиска

drpFilter.SelectedValue = cust.Name and txtSearch.Text = Waqar 

Пожалуйста, помогите мне

+1

Возьмите SQL, который генерирует LINQ и попробовать его. Если это тот же результат, это не проблема LINQ, но вы формируете неправильный запрос. Вы присоединяетесь - может быть, у него нет членства? Мы не будем отлаживать вас на этом уровне. Не наша работа, и мы не видим ваших данных. – TomTom

ответ

2

Я вижу одну проблему с этим:

SessionIDs ids = (SessionIDs)Session["IDs"]; 
      BSDataContext ct = new BSDataContext(); 
      var customers = from cust in ct.tblCustomers 
          where cust.AccountID == ids.accountID && 
    drpFilter.SelectedValue.StartsWith(txtSearch.Text.ToString()) //<-- HERE 
           join mem in ct.tblCustomerMemberships 
           on cust.CustomerID equals mem.CustomerID 
           select new { ... }; 

Если выполнить это: drpFilter.SelectedValue.StartsWith(txtSearch.Text.ToString()) он просто дает вам логическое значение.
Therefor в SQL генерироваться выглядит somethng так:

WHERE AccountID = @p1 AND TRUE 
Смежные вопросы