大家好。
我用尽了所有想法,因此将其发布到SO,我想创建一个表单,用户可以在其中搜索记录,然后在datagrid视图上进行tik检查,然后保留检查,即使他们使用过。
在此示例中,用户搜索了某个数字,然后选择了它的底部数字。
我希望,如果用户要搜索其他记录,则不会删除该项目。
在此示例中,该项目已删除,因为使用者搜索了另一条记录。
我目前的工作是
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)
的方法,请注意columnname
和columnname
是相同的。
是否有我需要的datagridview属性?
答案 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
祝您好运,希望我的回答有所帮助:)