2014-04-25 2 views
0

이것은 앞으로도 다시 참조 할 수 있도록 가능한 한 유연하게 유지하려고하는 학교 과제입니다.linq 객체로 읽을 수 있도록 문자열을 변환하십시오.

문자열을 Linq 쿼리에 전달하기 위해 콤보 상자를 사용하는 프로그램을 작성하려고합니다.

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged 

    ContractDataGridView.DataSource = Nothing 

    Dim currValue As Linq.Contract = "aContract." & ComboBox1.Text 'error is here with the literal and returned value 
    'Value of type 'String' cannot be converted to 'Linq.Contract'. 
    Dim db As New myDatabaseDataContext 
    Dim query = From aContract In db.Contracts 
       Select currValue 
       Order By aContract.ContractAmt 


    ContractDataGridView.DataSource = query  
End Sub 

나는 그것을 무력하게 만드는 법을 안다. 가능하다면 좀 더 융통성있는 것을 갖고 싶습니다.

+0

'Linq.Contract'란 무엇입니까? 내 IDE가 인식하지 못해서 어떤 문서도 찾을 수 없습니다. : -/ –

+0

원래 코드는 입니다. Dim currValue As String = "aContract." & ComboBox1.Text 및 주문자 : currValue 쿼리는 주문 실행없이 실행되었습니다. –

+0

좋습니다. 그건 내 질문에 대답하지 않았다. 나는 당신의 코드 스 니펫을 이해하기로되어 있지 않습니까? 당신이하려는 일을 명확하게하려고 노력할 수 있습니까? –

답변

0

'aContract'문자열을 사용하려고합니까? & ComboBox1.Text '열의 이름으로 Order By? 그렇다면 복잡한 Linq 쿼리를 만들려고 노력하고 있습니다. (필자가 생각하기에 이것에 넣으려는 노력의 수준은 아닙니다.) 이와 같은 일을 지원하는 전체 라이브러리는 http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx을 확인하십시오.

'aContract'를 사용하려는 것을 좀 더 설명하려고하면 도움이 될 것입니다. " & ComboBox1.Text '값입니다.

+0

예! 동적으로 열에 Order By라는 이름을 지정하려고합니다. 왜 내가 더 잘 공식화하지 못했는지 나는 모른다. Select는 aContract가 아닌 currValue 여야합니다. 내가 편집 할게. 그리고 네, 아마이 프로젝트에 투자하고 싶은 것보다 많은 노력이 필요할 것입니다. 나는 동적 linq 쿼리를 만드는 방법을 아는 것이 미래에 유용 할 것 같은 기분이 든다. –

관련 문제