0
6 개의 텍스트 NA,PO,FA,GO,VG,EX
이있는 콤보가 있는데 where 절의 필드로 사용되는이 콤보에서 선택한 값에 대해 Linq 쿼리를 수행하려고합니다. 예를 들어 :콤보 텍스트에 의한 linq where 절의 대체 필드 이름
'if "NA" is selected :
Dim query = from t in db.table where t.NA > 0 Select t
'If "PO" is selected :
Dim query = from t in db.table where t.PO > 0 select t
등 ...
문이나은을 얻기 위해 반사를 사용 "을 선택하는 경우"
죄송합니다, 나는 당신의 솔루션을 이해 할 수없는 생각하지, 나도 문자열 필드 이름을 대체 할 PropertyInfo.GetValue을 사용하는 방법의 예를 발견했다. 연결하도록 안내 할 수 있습니까? –
'PropertyInfo'를 얻는 방법을 보여줄 라인을 추가했습니다. 당신이 반성을 잘 이해하지 못한다면, 아마도 나의 해결책은별로 도움이되지 않을 것입니다. – bluevector
아이디어와 개념이 정확합니다. C#의 구문도 정확합니다 (테스트하지 않았습니다). 그러나 vb.net의 구문은 약간 다릅니다. 마지막으로 저는 아이디어를 작동하는 vb.net 코드로 변환했습니다. Dim field_name = "NA" dim query = from db.table.AsEnumurable.where (function (f) f.gettype.getproperty (field_name)). GetValue (f, nothing)> 0) select t 왜 AsEnumurable을 vb.net에 추가해야 작동하는지 알 수 없습니다. 귀하의 설명에 많은 시간을 가져 주셔서 감사 드리며 오랜 시간이 걸려서 미안합니다. –