2011-10-24 2 views
0

라인에 오류가 발생했습니다. If wba.Selected = "MARKETING CODE" Then ... 누군가 도움을 줄 수 있기를 바랍니다. 감사합니다문자열에서 유형 부울로 변환이 올바르지 않습니다.

'Private Sub NewRecord_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    markCodes = New DataGridViewComboBoxColumn() 
    markCodes.Name = "Marketing Codes" 
    Me.DataGridView1.Columns.Add(markCodes) 
    markCodes.Visible = False 
End Sub 

'Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As DataGridViewEditingControlShowingEventArgs) 

    If DataGridView1.CurrentCell.ColumnIndex = DataGridView1.Columns(wba.Name).Index Then 
     If TypeOf e.Control Is ComboBox Then 
      cbxWba = TryCast(e.Control, ComboBox) 
      RemoveHandler cbxWba.SelectionChangeCommitted, New EventHandler(AddressOf cbxWba_SelectionChangeCommitted) 
      AddHandler cbxWba.SelectionChangeCommitted, New EventHandler(AddressOf cbxWba_SelectionChangeCommitted) 'this event will fire up if there's a selected item. 
     End If 
    End If 

End Sub 

'Private Sub cbxWba_SelectionChangeCommitted(ByVal sender As Object, ByVal e As EventArgs) 

    loadDescriptions() 

End Sub 

Private Sub loadDescriptions() 

    If wba.Selected = "MARKETING CODE" Then 

     markCodes.Visible = True 
     Try 
      Dim con As New SqlConnection 
      con.ConnectionString = "" 
      Dim myCommand1 As New SqlClient.SqlCommand 
      Dim myAdapter1 As New SqlClient.SqlDataAdapter 
      Dim sql As String = "Select analysis_a + ' - ' + [desc] as Expr1 from marketingCode" 
      Dim ds As New DataSet 
      myCommand1.Connection = con 
      myCommand1.CommandText = sql 
      myAdapter1.SelectCommand = myCommand1 
      myCommand1.Connection.Open() 
      myAdapter1.Fill(ds) 
      myCommand1.Connection.Close() 
      Dim dt As New DataTable 
      dt = ds.Tables(0) 


      For Each row As DataRow In ds.Tables(0).Rows 
       DataGridView1.CurrentRow.Cells(description.Name).Value = row("Expr1").ToString() 
       markCodes.DataSource = dt 
       markCodes.DisplayMember = "Expr1" 
       markCodes.ValueMember = "Expr1" 
      Next 


     Catch 
      MsgBox("failed") 
     End Try 

    End If 



End Sub 
+0

이 ** ** 텍스트 편집기에서 그 라인을 강조 표시 한 후 클릭하십시오 편집기 툴바의 "코드 샘플"버튼 ('{}')을 클릭하여 멋지게 포맷하고 구문을 강조 표시하십시오! –

답변

2

wba 란 무엇입니까? .Selected는 부울 속성을 문자열과 비교하는 것처럼 들립니다.

코드를 보면 wba가 datagridviewrow라고 가정하고 그런 식으로 .Selected를 사용할 수 없습니다.

   If wba.Value = "MARKETING CODE" Then 
        'we have a hit 
       End If 
: 당신은 allready이 있고 WBA 변수에서 선택한 셀을 저장 한 어떤 세포 알고있는 경우에,

 With DataGridView1 
      If .SelectedCells.Count > 0 Then 
       If .SelectedCells(0).Value = "MARKETING CODE" Then 
        'we have a hit 
       End If 
      End If 
     End With 

나 : 이있는 DataGridView에서 첫 번째로 선택한 셀의 값을 확인하려면

당신의 selectionMode = fullrowselect이 첫 번째 선택에 DataGridViewRow의 첫 번째 셀에 값이 있는지 확인하려면 다음

 With DataGridView1 
      If .SelectedRows.Count > 0 Then 
       If .SelectedRows(0).Cells(0).Value = "MARKETING CODE" Then 
        'we have a hit 
       End If 
      End If 
     End With 

것은 당신이 행이 WBA에 저장 한 경우를하는 해당 행의 첫 번째 셀은 다음 특정 값이있는 경우 차 검사 할 그 같은 : 당신은 코드, XML 또는 데이터 샘플을 게시 할 경우

 If wba.Cells(0).Value = "MARKETING CODE" Then 
      'we have a hit 
     End If 
+0

그 점을 강조해 주셔서 감사합니다. 코드를 'if cbxWba.SelectedValue = "로 변경했습니다."MARKETING CODE "Then' 그 결과로 작동합니다. 감사! – user765942

+0

아, 그래서 그것은 콤보 박스였습니다. ;) – Stefan

관련 문제