Vb.net datagrid视图根据winform应用程序中的状态更改颜色
我有这样一个函数:Vb.net datagrid视图根据winform应用程序中的状态更改颜色,vb.net,winforms,datagridview,Vb.net,Winforms,Datagridview,我有这样一个函数: Sub KPIColorchange() 'take 80 percenatge Dim perc80 As Integer = 80 value80 = DefaultKPI * perc80 / 100 Dim carid As String Dim strr As String = "select t.TBarcode as carid from Khanger_tbl k
Sub KPIColorchange()
'take 80 percenatge
Dim perc80 As Integer = 80
value80 = DefaultKPI * perc80 / 100
Dim carid As String
Dim strr As String = "select t.TBarcode as carid from Khanger_tbl k
inner join transaction_tbl t on k.transactid=t.transactID"
strr = strr + " where tid= " & tid & " and requested=1 and delivered=0 and status=3
and DATEDIFF(n, CAST(paydate AS DATETIME), GETDATE()) >=" & value80 & ""
Dim cmdr As New SqlCommand(strr, con.connect)
dr2 = cmdr.ExecuteReader
While dr2.Read
If dr2("carid") Is DBNull.Value Then
carid = ""
Else
carid = dr2("carid")
End If
Dim cnt As Integer = DGVall.Rows.Count
For i = 0 To cnt - 2
If DGVall.Rows(i).Cells(0).Value.ToString().Equals(carid) Then
DGVall.Rows(i).DefaultCellStyle.BackColor = Color.Fuchsia
End If
Next
End While
dr2.Close()
con.disconnect()
'take 100 percentage
Dim perc100 As Integer = 100
value100 = DefaultKPI * perc100 / 100
Dim str100 As String = "select t.TBarcode as carid from Khanger_tbl k
inner join transaction_tbl t on k.transactid=t.transactID"
str100 = str100 + " where tid= " & tid & " and requested=1 and delivered=0 and status=3 and
DATEDIFF(n, CAST(paydate AS DATETIME), GETDATE()) >=" & value100 & ""
Dim cmd100 As New SqlCommand(str100, con.connect)
dr2 = cmd100.ExecuteReader
While dr2.Read
If dr2("carid") Is DBNull.Value Then
carid = ""
Else
carid = dr2("carid")
End If
Dim cnt As Integer = DGVall.Rows.Count
For i = 0 To cnt - 2
If DGVall.Rows(i).Cells(0).Value.ToString().Equals(carid) Then
DGVall.Rows(i).DefaultCellStyle.BackColor = Color.OrangeRed
End If
Next
End While
dr2.Close()
con.disconnect()
End Sub
我有一个网格视图,在该网格视图中,我正在加载一些请求的carid。我们已经为位置设置了一些时间间隔。根据位置时间间隔,我必须在网格视图中更改颜色
如果汽车请求的时间达到80%的位置间隔时间,那么我将更改为一种颜色。
如果汽车请求的时间达到100%的位置间隔时间,那么我将更改为橙色,我在这里只做这么多事情。通常我的datagrid视图包含100多条以上的记录。这个函数我在每一分钟调用一次Timer_tick事件。
但是由于这个函数,我的系统会变慢,或者有一段时间系统会挂起。我如何优化这个代码?
如果我设置dataGridView.VirtualMode=true,任何帮助都是可以提前得到的;这对我有帮助吗?