从字符串转换为类型boolean无效

时间:2011-10-24 10:09:18

标签: vb.net

错误发生在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

1 个答案:

答案 0 :(得分:2)

什么是wba? .Selected听起来就像是在将布尔属性与字符串进行比较。

查看你的代码,我假设wba是一个datagridviewrow,然后你不能以这种方式使用.Selected。 要检查datagridview中第一个选定单元格的值:

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

或者,如果您已经知道它是什么单元格并将所选单元格存储在wba变量中:

                If wba.Value = "MARKETING CODE" Then
                    'we have a hit
                End If

如果你有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中,并且想要检查该行中的第一个单元格是否具有特定值,那么它是这样的:

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