3 가지 형식이 있으며 각각 자체 그리드가 있습니다. 다음 코드는 현재 form1에 쓰여 있지만 3 가지 형식 모두에서 사용됩니다. 그것은 작동하지만 매우 복잡하고 길기 때문에 다른 데이터베이스를 사용하고 다른 컬럼을 포함하는 3 가지 양식에서 작동해야합니다. 아래 코드를 3 개의 분리 된 함수로 나누고 해당 양식에 필요한 데이터 만 포함 된 각 양식의 뒷면에 배치하는 것이 더 적절하다고 생각합니까?이 상황에서의 코드 구성 및 재사용 가능성?
Public Class Form1
Public sFilter as string
Public sQuery as string
Public Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Public Sub buildFilter(ByVal form as string)
select case form
Case "form1"
sFilter = "control_no > 0 and control_no < 10000"
Case "form2"
sFilter = "quantity > 0 and quantity < 7849"
Case "form3"
sFilter = "store_id > 10000"
end select
End Sub
Public Sub buildQuery(form)
Select case form
Case "form1"
sQuery = "Select * FROM dataBase1 WHERE " & sFilter
Case "form2"
sQuery = "Select quantity, first_name, last_name FROM database2 WHERE " & sFilter
Case "form3"
sQuery = "Select * FROM dataBase3 WHERE " & sFilter
End Select
End Sub
End Class
나는 위의 코드를 취하여 각 양식의 뒷면에 배치하고 양식을 사용하는 것이 가장 바람직하다고 들었습니다. 나는 그것이 최선의 접근법이 아닌 것처럼 느낀다. 그러나 나는 또한 현재의 설정이 좋지 않다는 느낌을 받는다. 좋은 접근 방법은 무엇입니까?
아, 고마워요. 조엘.이게 내가 찾고 있던 바로 그거야. 그리고 8 라인에서 "Public form1_load"는 "Public MyInheritedForm_load"가되어야합니까? – Garrettchap1
@ Garrettchap1 : 'Handles Me.Load'가있는 한 당신이 부르는 것이 중요하지 않습니다. –