2013-04-02 73 views
1

我有一個語言表:LINQ to SQL中,首先查詢

LangId LangName 
1  English 
2  EngTest 
3  Germany 

我想編寫一個查詢,顯示langname聲明開始 '工程'

var query = dc.Languages.Where(p=>p.LangName.Contains(txtBxLangNameFilter.Text));

我是新手在LINQ到SQL。有人可以告訴我如何寫?

回答

6

Contains測試在任何位置的字符串中是否找到字符串。由於您要測試以某個字符串開頭的字符串,請使用StartsWith()

var query = dc.Languages 
       .Where(p => p.LangName.StartsWith(txtBxLangNameFilter.Text)); 
+2

IIRC,如果通過'NotSupportedException'將其轉換爲SQL,'StartsWith'可能會失敗。 –

+0

@GrantThomas StartsWith將被翻譯爲LIKE – void

+0

看不到(工作網絡),但我不認爲「是」或「否」是一個硬性規則和快速規則。 –

1

你會想改變ContainsStartsWith

0

使用StartsWith,而不是包含

var query = dc.Languages.Where(p=>p.LangName.StartsWith(txtBxLangNameFilter.Text)); 
0

這裏使用StartsWith()方法將是你最好的選擇。

0
var Lang= from language in dc.Languages 
      where language.LangName.StartsWith("Eng") 
      select language.LangName;