将字符串转换为布尔值

时间:2014-09-25 07:09:18

标签: vb.net vba datagridview

我有一个datagridview,它将数据传输到其他数据网格视图,我希望得到一些帮助。它看起来应该工作,但是我得到一个错误,说该字符串不能转换为布尔值。对于datagridview中的复选框,就是这种情况(用户必须单击要复制的行的复选框。) 我知道如何将值转换为字符串等,但我似乎无法弄清楚这一点。谁能帮我? 这是点击复制按钮时发生的情况:

For i As Integer = 0 To DGV1.Rows.Count - 1
        If DGV1.Rows(i).Cells(4).Value = True Then
            DGV2.Rows.Add(DGV1.Rows(i).Cells(3).Value, _
            DGV1.Rows(i).Cells(2).Value, _
            DGV1.Rows(i).Cells(3).Value, _
            DGV1.Rows(i).Cells(4).Value, _
            DGV1.Rows(i).Cells(6).Value)
            '2 = voer, 3 =voerid, 4= drogestof, 6 = (voer)keukenlocatie
        End If

DGV1是数据必须来自的数据网格,因此cell4是复选框。 DGV2是数据必须到达的数据网格。

更新: 现在我使用这个代码,这让我更进一步。

  Private Sub Button1_Click_2(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnkopieren.Click
    For i As Integer = 0 To DGV1.Rows.Count - 1
        If CBool(DGV1.Rows(i).Cells(4).Value) Then
            'If DGV1.Rows(i).Cells(4).Value = True Then
            DGV2.Rows.Add(DGV1.Rows(i).Cells(0).Value, _
            DGV1.Rows(i).Cells(1).Value, _
            DGV1.Rows(i).Cells(2).Value, _
            DGV1.Rows(i).Cells(3).Value)
            '2 = voer, 3 =voerid, 4= drogestof, 6 = (voer)keukenlocatie
        End If
    Next

End Sub

我收到错误" 无效的OperationException未处理" 显然,当我想将所选数据从1 datagridview传输到其他绑定数据网格视图时,他们不喜欢它。这有什么解决方案吗?我尝试自己修复和google搜索,但没有结果。

2 个答案:

答案 0 :(得分:1)

好像你想要复制选中的行。因此,您应该使用带有复选框的列来验证是否已选中它。如果您的第一列是复选框类型,那么它是单元格(0)。如下所示,可能修改您的代码对您有用。

          For i As Integer = 0 To DGV1.Rows.Count - 1
            If CBool(DGV1.Rows(i).Cells(0).Value) Then
                DGV2.Rows.Add(DGV1.Rows(i).Cells(3).Value, _
                DGV1.Rows(i).Cells(2).Value, _
                DGV1.Rows(i).Cells(3).Value, _
                DGV1.Rows(i).Cells(4).Value, _
                DGV1.Rows(i).Cells(6).Value)
                '2 = voer, 3 =voerid, 4= drogestof, 6 = (voer)keukenlocatie
            End If
          Next

答案 1 :(得分:0)

false字符串的值必须为true。可能是数字字符串(0,不是0,-1,不是-1)或数字。

这是一个实验。

A = 0
B = 1
C = -1
D = 55

msgbox A & " " & B & " " & C & " " & D 
msgbox cbool(A) & " " & cbool(B) & " " & cbool(C) & " " & cbool(D)
msgbox cbool(cstr(A)) & " " & cbool(cstr(B)) & " " & cbool(cstr(C)) & " " & cbool(cstr(D))
msgbox cbool("true") & " " & cint(vbtrue)
msgbox cbool("false") & " " & cint(vbfalse)
msgbox cbool("cat")

你会看到false = 0和true<>和猫是一个错误。

相关问题