2012-04-13 14 views
2

Ich habe eine Tabelle mit Benutzern. Ich möchte in der Lage sein, nach einer Zeichenkette zu suchen und dann allen Benutzernamen zurückzugeben, der diese Zeichenkette enthält. Dann möchte ich eine ListBox auffüllen. Dies ist, was ich versucht habe:Linq zu SQL-Suche

var varUser = (from u in dc.Users 
          where u.username == searchUserName 
          select u.username); 
      lbSearchResult.DataSource = varUser; 
      lbSearchResult.DataBind(); 

Aber wenn ich versuche, nach "a" zu suchen, bekomme ich keine Ergebnisse. Es funktioniert nur, wenn ich den vollen Benutzernamen eingebe.

Antwort

5

Try Contains() statt mit:

var varUser = from u in dc.Users 
       where u.username.Contains(searchUserName) 
       select u.username; 
+0

Es ist erwähnenswert, dass es Fall unwissend sein kann mit 'u.user.ToLower(). Enthält (searchUserName.ToLower())' – ThePower

+0

@ThePower 'Contains' in LINQ-SQL wird eine' LIKE' Anweisung erzeugen, ist Groß-/Kleinschreibung nicht standardmäßig in MSSQL, sofern nicht anders angegeben. – Mig

1

Vielleicht wegen der Klausel

where u.username == searchUserName 

Versuchen u.username.Contains(searchUserName) oder bauen einen regulären Ausdruck.