계속 이전 질문에서 '조회'컨트롤러의 id 값을 다른 컨트롤러 메소드 '요금'에 전달합니다. 뷰 모델에서 목록을 사용하지 않고 뷰 모델에서 컨트롤러로 값을 전달하려면 어떻게해야합니까?
Function Charges(id As String) As ActionResult
Dim Patient As New LookupVM()
Patient.GetHistory(paid)
Return View(Patient)
End Function
, 난 GetHistory (ID)리스트 방식이 있고, listProcedure 내가보기에 디스플레이되는 컨트롤러에 다시 전달할 값을 유지하는리스트이다.
Public Property listProcedure As List(Of LookupVM)
Public Function GetHistory(id As String) As List(Of LookupVM)
Using db As New DbContext()
' SQL query
'====================
Dim idd = New SqlParameter("@id", "%" & id & "%")
Dim query As String = "select p.id id, pv.pvid pvid
from patient p
join patient_visit pv on p.id = pv.id
where p.paid like @id"
Dim Results = db.Database.SqlQuery(Of LookupVM)(query, idd).ToList()
For Each item In Results
Dim pvid = New SqlParameter("@pvid", "%" & item.pvid & "%")
Dim query2 As String = "select po.remarks remarks, po.entereddt entereddt, po.Consultant Consultant
from procedure_order po
join procedures p on po.pdid = p.pdid
where po.pvid like @pvid
order by po.entereddt desc"
Dim Results2 = db.Database.SqlQuery(Of LookupVM)(query2, pvid).ToList()
For Each item2 In Results2
Dim ProcedureList2 As New LookupVM()
ProcedureList2.remarks = item2.remarks
ProcedureList2.entereddt = item2.entereddt
ProcedureList2.ForConsultant = item2.ForConsultant
listProcedure.Add(ProcedureList2)
Next
Next
Return listProcedure
End Using
End Function
컨트롤러 이외의 다른 것을 통해 컨트롤러에 값을 전달할 수 있는지 궁금합니다. 가능하다면 무엇이 될 수 있습니까? 왜냐하면 그것의 목록, 나는 foreach 루프를 사용하지 않고 페이지에 그들을 표시 할 수 없습니다.
또 다른 질문은 내 코드가 개념적으로 정확하거나 잘못 되었습니까? 왜냐하면 내가 실행했을 때 위의 코드와 관련된 72 개의 값 목록을 표시하는 데 5 분이 걸렸기 때문입니다. 나는 그것이 너무 오래 걸렸다 고 생각한다. 더 빨리로드 할 수있는 방법이 있습니까?
왜냐하면 그들은 int 값이 아니기 때문에 LIKE를 사용해야했습니다. 그것의 varchar 때문에 뭔가 'A123'. 죄송합니다. "JOIN을 사용하는 열의 색인이 있습니다." 인덱스가 있는지 어떻게 알 수 있습니까? 기본 키와 같은가요? – Nurul
나는리스트의 사용을 비판하지 않는다. 나는 여전히 테이블에 값을 표시하기 위해 목록을 사용합니다. 그것의 단지 내가보기에 별도의 장소에 값을 표시해야합니다. 귀하의 이해를 돕기 위해이 페이지에서 나의 가치 배치의 예를 들겠습니다. 내가 성취하고자하는 것은이 페이지의 오른쪽 상단에있는 '요청 된 열어 본 활동'부분과 같습니다. 'today', '20 times'및 'today'값은 데이터베이스에서 검색됩니다. 나는 각각의 부분에 대해 foreach 루프를 수행해야만했다. 그렇지 않다면 아직 값이없는 페이지를 실행할 때 전체 부분이 표시되지 않습니다. – Nurul
LIKE 사용에 관해서는 A12가 발생할 수 있다면 'LIKE % A12 %'는 'A12'와'A123' 둘 모두와 일치합니다. 인덱스 정보 : Management Studio에서 테이블을 확장 한 다음 [+] 인덱스를 확장합니다. 필요한 경우 마우스 오른쪽 버튼 메뉴 항목 "새 색인"을 사용하십시오. –