2015-11-13 33 views
0

感謝您閱讀我的問題 我試圖設置自動完成一個文本框,我不明白我想要我想我的LINQ必須有某種問題
這裏是我的代碼我遇到了自動完成

private AutoCompleteStringCollection GetLinqDataSourceForString(string p) 
    { 
     var c = new AutoCompleteStringCollection(); 
     c.Add(p + Getauto(txtSearch.Text)); 
     return c; 
    } 

private void txtSearch_TextChanged(object sender, EventArgs e) 
    { 
     txtSearch.AutoCompleteSource = AutoCompleteSource.CustomSource; 
     txtSearch.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
     txtSearch.AutoCompleteCustomSource = GetLinqDataSourceForString(txtSearch.Text); 
    } 

,這裏是我的LINQ這是應該從數據庫

public string AutoUpdate(string _search) 
    { 
     using (var context = new Phone_BookEntities1()) 
     { 
      var c = (from d in context.Cantacts 
        where d.Cantact1 == _search 
        select d.Cantact1).SingleOrDefault(); 
      return c; 
     } 
    } 

這裏是我的問題得到的數據? 請大家幫忙,TNX

+1

什麼是不工作?錯誤?錯誤的結果? – Sayse

+0

@sayse它帶回了我們添加到txtsearch.text中的名稱和EG:如果我們寫(cat),它會輸入(catcat),並且當我們鍵入(c)時它不會給我們任何選項但它不會和你必須輸入所有的單詞 –

回答

0

如果我們寫(CAT),它會輸入(catcat)

p + Getauto(txtSearch.Text)解釋說,你可能不希望在這裏附加pGetauto應該使用p代替

,它不會給我們任何選項,當我們鍵入(三)其應該給貓,但它不會和你必須鍵入的所有字的

嗯,你where是做一個完整的比較

where d.Cantact1 == _search 

這可能需要使用StartsWith

where d.Cantact1.StartsWith(_search) 
+1

非常感謝你,我從昨天開始就一直在努力 –

+0

@MostafaBouzari - 別擔心,玩得開心! – Sayse

+0

現在我第一次得到兩個運行時錯誤({「序列包含多個元素」} == System.InvalidOperationException)當它不止一次發生時,,,,,第二個(System.AccessViolationException內部異常=>嘗試以讀取或寫入受保護的內存。這通常表示其他內存已損壞。) –