2009-12-08 63 views
1

我使用自動建議的方式創建了一個文本框。所以,它運作良好。它只建議名字,但我希望它建議全名(名字和姓氏,這兩個不同的列)。看看後面,下面的代碼和預期一樣:使用LINQ to SQL連接字符串的自動建議文本框

<System.Web.Services.WebMethod()> _ 
Public Shared Function GetNames(ByVal prefixText As String, ByVal count As Integer) As String() 

    Dim db As New DemoDataContext() 
    Return db.Students.Where(Function(n) n.FirstName.StartsWith(prefixText)).OrderBy(Function(n) n.FirstName).Select(Function(n) n.FirstName).Take(count).ToArray 

End Function 

這裏的加價:

 <asp:TextBox ID="TextBox1" runat="server" Width="191px"></asp:TextBox> 
    <cc1:AutoCompleteExtender ID="TextBox1_AutoCompleteExtender" runat="server" 
     Enabled="True" minimumprefixlength="1" ServiceMethod ="GetNames" TargetControlID="TextBox1"> 
    </cc1:AutoCompleteExtender> 

我寫了下面的代碼,試圖得到的文本框中建議的全名但它沒有工作:

 Dim query = (From s In db.Students _ 
       Where s.FirstName.StartsWith(prefixText) _ 
       Order By s.FirstName _ 
       Select New With {.Name = s.FirstName & " " & s.LastName}).Take(count).ToArray 
     Return query 

當我生成項目它說:「類型‘(第50行)的1維陣列’的值不能被轉換爲‘字符串的1維陣列’,因爲「 (第50行)'不是派生的從'字符串'「

Anyboy有一個建議,請評論。謝謝。

+0

而不是使用匿名類型與我所使用的別名是這樣選擇的全名Select語句= s.FirstName&「」&s.LastName和它的作品。不過,我想看看你的建議。 – 2009-12-08 15:31:42

回答

2

不要創建一個名稱屬性,它是一個字符串一個新的匿名對象,只是返回字符串本身:

Dim query = (From s In db.Students _ 
      Where s.firstname.StartsWith(prefixText) _ 
      Order By s.firstname _ 
      Select s.firstname & " " & s.lastname).Take(count).ToArray