Я пытаюсь создать простую систему инвентаризации, которая отображается из ограниченных данных DataGridView. Я хочу изменить цвет строки указанного элемента c, если элемент меньше минимального требуемого предела.
Когда я открываю форму с помощью DatagridView, цвета строки каждого элемента успешно изменяются на красный, если он меньше минимальной суммы. Однако когда я закрываю форму и открываю ее снова, цвет строки не изменяется.
Я пытаюсь заменить текст столбца, если запас ниже требования, чтобы проверить, работает ли функция, и она сделала изменить текст ячейки, даже если я открою и закрою форму, но не цвет строки затронутых строк. Я попытался вручную загрузить строки в DataGridView, не используя SqlDataAdapter
и DataGridView, и он прекрасно работает, даже если я снова открываю и закрываю форму.
Но я хочу воспользоваться * Функция 1008 *, в которой я создаю, обновляю и удаляю элементы в самом DataGridView при нажатии кнопки обновления. Вот мой код:
Итак, мой вопрос: почему пользовательские цвета строк DataGridView не меняются даже при повторном открытии той же формы?
Dim dataAdapter As SqlDataAdapter
Dim commandBuilder As SqlCommandBuilder
Dim dataSet As DataSet
Private Sub Inventory_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
Dim query As String = "SELECT * FROM Inventory"
dataSet = New DataSet
dataAdapter = New SqlDataAdapter(query, SQLCon)
dataAdapter.Fill(dataSet)
DGVInventory.DataSource = dataSet.Tables(0)
'Change the row color of insufficient item quantity
For row As Integer = 0 To DGVInventory.Rows.Count - 1
If DGVInventory.Rows(row).Cells(2).Value < DGVInventory.Rows(row).Cells(3).Value Then
DGVInventory.Rows(row).DefaultCellStyle.BackColor = Color.Red
DGVInventory.Rows(row).DefaultCellStyle.ForeColor = Color.White
End If
Next
Catch ex As Exception
MessageBox.Show(ex.Message, "Inventory_Load() Function Error")
End Try
End Sub
Private Sub BtnSaveChanges_Click(sender As Object, e As EventArgs) Handles BtnSaveChanges.Click
Try
commandBuilder = New SqlCommandBuilder(dataAdapter)
dataAdapter.Update(dataSet, "Inventory")
MessageBox.Show("Database has been updated.", "Update Successful!")
Catch ex As Exception
MessageBox.Show(ex.Message, "BtnSaveChanges_Click() Function Error")
End Try
End Sub