Как я могу создать самоинкрементный столбец для DataGridView? - PullRequest
0 голосов
/ 15 января 2020

Мне нужно добавить самоинкрементный столбец в DataGridView. Каждый раз, когда в сетку добавляется строка, я хочу увеличивать столбец No.

Мой Form_Load код:

Private Sub SAP_OrdenVenta_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    DataGridView1.ColumnCount = 6

    DataGridView1.Columns(0).Name = ("No")
    DataGridView1.Columns(1).Name = ("NoArticulo")
    DataGridView1.Columns(2).Name = ("Descripcion")
    DataGridView1.Columns(3).Name = ("Cantidad")
    DataGridView1.Columns(4).Name = ("Precio")
    DataGridView1.Columns(5).Name = ("Total")
End Sub

Событие DataGridView Button Click для кнопки добавления:

Private Sub btnAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregar.Click

    Dim articulo, cantidad As Integer
    Dim precio, total1 As Double
    Dim i As Integer = 0

    articulo = txtArticulo.Text.Trim()
    cantidad = txtCantidad.Text.Trim()
    precio = txtPrecio.Text.Trim()
    total1 = txtPrecio.Text.Trim()

    'Agrego Linea a DataGridView
    Dim row As String() = New String() {1, articulo, "No disponible", cantidad, precio, total1}
    DataGridView1.Rows.Add(row)

End Sub

Как я могу сделать эту работу?

1 Ответ

1 голос
/ 16 января 2020
Private Sub btnAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregar.Click    
    Dim LastIndex As Integer = DataGridView1.Rows.Count - 1
    Dim LastNo As Integer = Integer.Parse(DataGridView1.Rows(LastIndex).Cells(0).Value)
    Dim NewNo As String = (LastNo + 1).ToString()

    Dim row As String() = New String() {NewNo, txtArticulo.Text, "No disponible", txtCantidad.Text, txtPrecio.Text, txtPrecio.Text}
    DataGridView1.Rows.Add(row)
End Sub

Однако обратите внимание: если это представление загружается из реальной таблицы базы данных, вы почти всегда хотите полагаться на способность вашей базы данных генерировать значения идентификаторов. В противном случае, это огромное состояние гонки, ожидающее взрыва.

...