我正在构建一个批量插入应用程序以在 Windows 表单 .net 3.5 中将数据在 Excel 之间传输到 Sql Server 问题是有时 excel 数据需要在转到 Sql Server 之前进行一些更改,这就是为什么我需要创建一个具有可编辑 datagridview 的应用程序,它的工作原理类似于中间过程中的层。
该应用程序包括在一个 datagridview 中获取一个 excel 内容,然后我使用背景颜色更改、工具提示等进行一些验证。因此,如果有一些带有验证的单元格,用户按 F2 并更改相应的内容。
问题是,当用户结束更改单元格时,我想再次应用验证过程(更改背景颜色行、添加工具提示等),这不再起作用,只起作用一次。换句话说,在 datagridview 单元格发生一些变化后,任何改变单元格背景颜色的方法都不起作用。
一些想法?感谢大家。
笔记:
这是我的 4 种验证方法之一:
**enter code here**
Public Sub Validate()
For Each x As DataGridViewRow In DataGridView1.Rows
If IsDBNull(x.Cells(0).Value) Then
DataGridView1.Rows(x.Index).Cells(0).Style.BackColor = Color.Red
End If
If IsDBNull(x.Cells(1).Value) Then
DataGridView1.Rows(x.Index).Cells(1).Style.BackColor = Color.Red
End If
If IsDBNull(x.Cells(2).Value) Then
DataGridView1.Rows(x.Index).Cells(2).Style.BackColor = Color.Red
End If
If IsDBNull(x.Cells(3).Value) Then
DataGridView1.Rows(x.Index).Cells(3).Style.BackColor = Color.Yellow
End If
If IsDBNull(x.Cells(4).Value) Then
DataGridView1.Rows(x.Index).Cells(4).Style.BackColor = Color.Yellow
End If
If IsDBNull(x.Cells(5).Value) Then
DataGridView1.Rows(x.Index).Cells(5).Style.BackColor = Color.Yellow
End If
If IsDBNull(x.Cells(6).Value) Then
DataGridView1.Rows(x.Index).Cells(6).Style.BackColor = Color.Red
End If
If IsDBNull(x.Cells(7).Value) Then
DataGridView1.Rows(x.Index).Cells(7).Style.BackColor = Color.Red
End If
If IsDBNull(x.Cells(8).Value) Then
DataGridView1.Rows(x.Index).Cells(8).Style.BackColor = Color.Yellow
End If
If IsDBNull(x.Cells(9).Value) Then
DataGridView1.Rows(x.Index).Cells(9).Style.BackColor = Color.Yellow
End If
If IsDBNull(x.Cells(10).Value) Then
DataGridView1.Rows(x.Index).Cells(10).Style.BackColor = Color.Yellow
End If
If IsDBNull(x.Cells(11).Value) Then
DataGridView1.Rows(x.Index).Cells(11).Style.BackColor = Color.Yellow
End If
If IsDBNull(x.Cells(12).Value) Then
DataGridView1.Rows(x.Index).Cells(12).Style.BackColor = Color.Yellow
End If
If IsDBNull(x.Cells(13).Value) Then
DataGridView1.Rows(x.Index).Cells(13).Style.BackColor = Color.Red
End If
If IsDBNull(x.Cells(14).Value) Then
DataGridView1.Rows(x.Index).Cells(14).Style.BackColor = Color.Red
End If
If IsDBNull(x.Cells(15).Value) Then
DataGridView1.Rows(x.Index).Cells(15).Style.BackColor = Color.Red
End If
If IsDBNull(x.Cells(16).Value) Then
DataGridView1.Rows(x.Index).Cells(16).Style.BackColor = Color.Yellow
End If
If IsDBNull(x.Cells(17).Value) Then
DataGridView1.Rows(x.Index).Cells(17).Style.BackColor = Color.Yellow
End If
If IsDBNull(x.Cells(18).Value) Then
DataGridView1.Rows(x.Index).Cells(18).Style.BackColor = Color.Red
End If
If IsDBNull(x.Cells(19).Value) Then
DataGridView1.Rows(x.Index).Cells(19).Style.BackColor = Color.Red
End If
If IsDBNull(x.Cells(20).Value) Then
DataGridView1.Rows(x.Index).Cells(20).Style.BackColor = Color.Red
End If
Next
End Sub