I need to add a self-incrementing column to a DataGridView. Every time a row is added to the grid I want to increment the No
column.
My Form_Load
code:
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
The DataGridView Button Click event for the add button:
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
How can I make this work?
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
Take note, however: if this view is loaded from a real database table, you almost always want to rely on your database's ability to generate ID values. Otherwise, this is a huge race condition waiting to blow up.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.