2009-12-08 3 views
1

자동 제안 된 텍스트 상자를 만듭니다. 그래서, 그것은 잘 작동합니다. 그것은 단지 이름을 제안하지만, 나는 그것이 전체 이름 (두 개의 다른 열이있는 성과 이름)을 제안하고 싶습니다. 자동 제안 LINQ to SQL이 연결된 문자열이있는 텍스트 상자

 <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> 

내가 이름을 제안하는 텍스트 상자를 얻기 위해 시도하는 다음 코드를 작성 : 여기
<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 

는 마크 업입니다 : 그 뒤에 다음 코드를 살펴 예상대로 일 그러나 그것은 작동하지 않았다 : 내가 프로젝트를 빌드 할 때

 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) '이 파생되지 않았습니다. from 'String' "

Anyboy 님이 제안한 의견이 있으시면 말씀해주세요. 고맙습니다.

+0

을 = s.FirstName & ""& s.LastName 그리고 작동합니다. 그래도 나는 당신의 제안을보고 싶습니다. –

답변

2

단지 문자열 자체 반환 문자열입니다 이름 속성을 가진 새로운 익명 객체를 생성하지 마십시오 :이 선택하면 FullName 같은 별칭을 사용 Select 문에 익명 형식을 사용하는 대신

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