2011-11-22 4 views
-1
Sub CboSO_DropDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles CboSO.DropDown 
    If functionmode = "UPDATE" Then 
     Dim daProp2 As New OdbcDataAdapter() 
     Dim dsProp2 As New DataSet() 
     Dim qryProp2 As String 


     qryProp2 = "SELECT * FROM so WHERE scn = '" & txtSCN.Text & " 'AND shutout_ind <> 'N' and so.reload_ind='N' and so.redelv_ind='N'" 
     daProp2.SelectCommand = New OdbcCommand(qryProp2, conn) 
     Dim cb2 As OdbcCommandBuilder = New OdbcCommandBuilder(daProp2) 
     daProp2.Fill(dsProp2, "so") 
     Dim dtRbt As DataTable = dsProp2.Tables("so") 


     If dsProp2.Tables(0).Rows.Count > 0 Then 
      CboSO.DataSource = dtRbt 
      CboSO.DisplayMember = "so_num" 

     End If 

    End If 

End Sub 

Private Sub CboSO_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles CboSO.KeyPress 
    Dim daProp3 As New OdbcDataAdapter() 
    Dim dsProp3 As New DataSet() 
    Dim qryProp3 As String 


    qryProp3 = "SELECT SUM(item_num) as totitemnum FROM soitem WHERE scn= '" & txtSCN.Text & " 'AND so_num='" & CboSO.SelectedItem & "' " 
    daProp3.SelectCommand = New OdbcCommand(qryProp3, conn) 
    Dim cb3 As OdbcCommandBuilder = New OdbcCommandBuilder(daProp3) 
    daProp3.Fill(dsProp3, "soitem") 
    Dim dtRbt As DataTable = dsProp3.Tables("soitem") 


    If dsProp3.Tables(0).Rows.Count > 0 Then 
     LblSOQty.Text = IIf(IsDBNull(dsProp3.Tables(0).Rows(0)("totitemnum")), "", dsProp3.Tables(0).Rows(0)("totitemnum")) 

    End If 

End Sub 

답변

0

Cbo.SelectedItem 대신 CboSO.SelectedValue 또는 CboSO.Text 속성을 사용해야합니다.

추신 : 하드 코딩 된 SQL 문자열 대신 매개 변수 (준비)를 사용하십시오.

+0

저는 100 % 확신하기 위해 cboSO.SelectedItem.Value를 사용하는 것을 선호합니다. – Ortund

관련 문제