我有一些數據顯示在DataGridView
和我的btnSave_Click
事件中,我調用一個子例程來驗證網格中的數據,然後將其保存到我的數據庫中。獲取DataGridView嵌套單元格的值For循環
我這樣做的方式是對每一行使用一個循環,並在該循環內部使用另一個for循環,對於每一列。
我需要然後比較它正在驗證的單元格值(行dr,單元格dc)中的每個字符。但是,我無法找到使用行/列座標來獲取單元格中的值的方法。
這有點難以解釋我的意思,但在此代碼中,我在前兩行設置了For Loops
,然後在第三行,請注意If IsDBNull(dc.TextInCell)
- TextInCell是我需要替換的。
In Row;博士和列; DC,我需要再驗證存儲單元格中的數值...
For Each dr As DataGridViewRow In dgvImport.Rows
For Each dc As DataGridViewColumn In dgvImport.Columns
If dc.HeaderText = "Product Code" Then
If IsDBNull(dc.TextInCell) = True Or dc.TextInCell = Nothing Or dc.TextInCell = "" Then
Me.Cursor = Cursors.Default
MsgBox("Import failed. One or more required fields were not entered", MsgBoxStyle.OkOnly, "Error")
Exit Sub
End If
For Each c As Char In dc.TextInCell
If Not Char.IsLetterOrDigit(c) Then
If Not Char.IsWhiteSpace(c) Then
If c <> "&" AndAlso c <> "-" AndAlso c <> "(" AndAlso c <> ")" Then
Me.Cursor = Cursors.Default
MsgBox("Import failed. One or more cells contains an invalid character", MsgBoxStyle.OkOnly, "Error")
Exit Sub
End If
End If
End If
Next
如何獲取單元格的值到一個變量從這裏通過審定發送?
有些事件可以讓你在你去的時候進行驗證,這樣你就可以告訴用戶他們有錯誤*,而不是「在這個頁面上有錯誤」。 CellValidating是其中之一,CellLeave也是一種可能性 – Plutonix
@Plutonix不確定這是可能的。這是從Excel電子表格中選擇的數據,並且'DataSource'是我在選擇它後填充的'DataTable' – David
在這種情況下,我肯定不會循環通過DGV,而是通過DataTable行。您可以添加一個列,指出哪些列通過,哪些列出錯,並提供一些視覺提示 – Plutonix