保留我使用vb.net

时间:2019-01-17 07:33:22

标签: vb.net datagridview

大家好。

我用尽了所有想法,因此将其发布到SO,我想创建一个表单,用户可以在其中搜索记录,然后在datagrid视图上进行tik检查,然后保留检查,即使他们使用过。

enter image description here

在此示例中,用户搜索了某个数字,然后选择了它的底部数字。

我希望,如果用户要搜索其他记录,则不会删除该项目。

enter image description here

在此示例中,该项目已删除,因为使用者搜索了另一条记录。

我目前的工作是

 Private Sub dgvConfirm_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvConfirm.CellContentClick

    If dgvConfirm.Item(0, dgvConfirm.CurrentRow.Index).Value = 0 Then
        dgvConfirm.Item(0, dgvConfirm.CurrentRow.Index).Value = 1
        nmblst = nmblst + dgvConfirm.Item(2, dgvConfirm.CurrentRow.Index).Value + ","

    Else

        dgvConfirm.Item(0, dgvConfirm.CurrentRow.Index).Value = 0
    End If

End Sub

这是我单击datagridview时的代码,它只是获取唯一键列并将其转换为字符串。

Private Sub txtSearch_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSearch.TextChanged
    If nmblst <> "" Or nmblst.Length > 0 Then

        nmblst = nmblst.Trim().Remove(nmblst.Length - 1)
        scndQry = " or PPFNo  in ('%" & nmblst & "%') "
    End If

    If rdoPartNo.Checked = True Then
        bndsrc.Filter = "PartNo  Like '%" & txtSearch.Text & "%' " + scndQry
    Else
        bndsrc.Filter = "PPFNo  Like '%" & txtSearch.Text & "%' " + scndQry
    End If

    frstQry = bndsrc.Filter

End Sub

此代码用于搜索。我尝试使用类似select this from thistable where columnname like '%something%' and columname in (etc,etc)的方法,请注意columnnamecolumnname是相同的。

是否有我需要的datagridview属性?

1 个答案:

答案 0 :(得分:1)

我认为您无法正确解决此问题。

假设只能检查一项,请尝试将选中的行以一种类型存储,每列分别存储,如下所示:

Private Type temp
    PartNo As Long
    PPFNo As Integer
    ProductNo As String
    DateCreated As DateTime
    And so on...
End Type

选中某项后,您会找到选中该框的行,然后将每个字段放入临时类型,如下所示:

For i = 0 to DataGridView.Columns - 1
    temp(i) = DataGridView.Item(i, selectedrow).Value
Loop

然后,在搜索结束时,可以通过将以下内容添加到代码中来将临时内容附加到DataGridView:

DataGridView.Rows.Add(temp(0),temp(1),temp(2),temp(3)) 'And more if you have more columns

祝您好运,希望我的回答有所帮助:)