vb.Net 2008의 콤보 상자로 datagridview
컨트롤을 만들었습니다. 아래 코드에서 여러 행의 데이터를 검색하고 데이터를 올바르게 표시하도록 datagrid
을 구성합니다. . 반환 된 모든 행에 대해 datagrid
에있는 각 행의 콤보 상자에 아무런 문제없이 채울 수 있습니다.VB.net datagridview 콤보 상자를 올바르게 채우는 방법
특정 레코드의 데이터를 검색 할 때 값을 자동 선택하려고하면 모든 콤보 상자에 동일한 값이 잘못 입력됩니다.
아래 코드에서 'Grid Combo 채우기'코드는 값을 콤보 상자에로드하는 방법을 나타냅니다. '특정 레코드 채우기'코드는 내가 문제가 있다고 생각하는 곳입니다. 모든 레코드의 콤보 상자가 같은 값을 반환하는 이유는 무엇입니까? 난 비 - 콤보 상자가 제대로 채워져 있기 때문에 내 루프가 올바른지 압니다.
'Populate the Grid Combo
conCombo.Open(sConnectionString)
'Populate the Referral Reason combo box
sSQL = "SELECT Referral_Reason_Id, Referral_Reason FROM Referral_Reason WHERE DELETED = FALSE ORDER BY SortOrder"
cmdCombo = New ADODB.Command
cmdCombo.ActiveConnection = conCombo
cmdCombo.CommandText = sSQL
rsCombo = cmdCombo.Execute
i = 0
Do While i < dgPPV.RowCount
Do While Not rsCombo.EOF
Dim dgvcc As DataGridViewComboBoxCell
dgvcc = dgPPV.Rows(i).Cells(3)
dgvcc.Items.Add(New MyListItem(rsCombo.Fields(1).Value, rsCombo.Fields(0).Value))
rsCombo.MoveNext()
Loop
rsCombo.MoveFirst()
i = i + 1
Loop
If rsCombo.State Then rsCombo.Close()
If conCombo.State Then conCombo.Close()
If cmdCombo.State Then cmdCombo.ActiveConnection = Nothing
'Populate specific record
Sub GetPPVGridData()
Dim i As Integer
CloseConnectionString()
con.Open(sConnectionString)
sSQL = "SELECT Policy.PolicyDescription, Referral_Reason.Referral_Reason, ERS_Outcome.Outcome_Description, Audit_Outcome.Comment "
sSQL = sSQL & "FROM ((Audit_Outcome INNER JOIN Referral_Reason ON Audit_Outcome.Referral_Reason_Id = Referral_Reason.Referral_Reason_Id) INNER JOIN Policy ON Audit_Outcome.Policy_Id = Policy.Policy_ID) INNER JOIN ERS_Outcome ON Audit_Outcome.Outcome_Id = ERS_Outcome.Outcome_Id "
sSQL = sSQL & "WHERE Audit_Outcome.Referral_Id = " & lblReferralId.Text
cmd = New ADODB.Command
cmd.ActiveConnection = con
cmd.CommandText = sSQL
rs = cmd.Execute
Do While Not rs.EOF
For i = 0 To dgPPV.RowCount - 1
If dgPPV.Rows(i).Cells("dgPPVDescription").Value = rs.Fields(0).Value Then
dgPPV.Rows(i).Cells("dgCheckPPV").Value = True
dgPPV.Rows(i).Cells("dgPPVDescription").Value = rs.Fields(0).Value
dgPPV.Rows(i).Cells("dgPPVReferralReason").Value = rs.Fields(1).Value
dgPPV.Rows(i).Cells("dgPPVOutcome").Value = rs.Fields(2).Value
dgPPV.Rows(i).Cells("dgPPVComment").Value = rs.Fields(3).Value
End If
Next
rs.MoveNext()
Loop
CloseConnectionString()
End Sub
모든 조언을 크게 듣습니다!