none
Agregar números en datagridview por cada cierto registro RRS feed

  • Pregunta

  • Hola, necesito enumerar las filas de un datagridview de la siguiente manera, por ejemplo si tengo agregado 7 filas que agregue de 3 en 3 los números comenzando de 1, es decir, desde la fila uno hasta la tres le corresponde el numero 1, la fila cuatro hasta seis le corresponde el numero 2 y a la fila 7 el numero 3, la cantidad de fila siempre va variar solo que tiene que respetar enumerar cada 3 filas, necesito un código que agregue los números cuando las filas ya estén todo cargado, no logro que me salga si me puede ayudar por favor.
    miércoles, 15 de agosto de 2018 3:08

Respuestas

  • Hola:
    En un Form con 1 DataGridView, copia y pega el siguiente código

    Option Explicit On
    Option Strict On
    Imports System.Data.SqlClient

    Public Class Form1
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
            Dim msCadenaSQL As String = "Data Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True"
            Try
                ' Configuramos una conexión con el origen de datos.
                Using loConexion As New SqlConnection(msCadenaSQL)
                    ' crear adaptador
                    Dim daOrders As New SqlDataAdapter("SELECT 0 AS numero, OrderId, OrderDate FROM Orders", loConexion)
                    ' instanciar datatable
                    Dim lDataTable As New DataTable
                    ' utilizar el dataadapte para llenar el datatable con la tabla
                    daOrders.Fill(lDataTable)
                    Dim liNumero As Integer = 0
                    Dim liGrupo As Integer = 0
                    For Each Fila As DataRow In lDataTable.Rows
                        If liNumero Mod 3 = 0 Then
                            liGrupo += 1
                        End If
                        Fila.Item("numero") = liGrupo
                        liNumero += 1
                    Next
                    Me.DataGridView1.DataSource = lDataTable
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
    End Class

    Un saludo desde Bilbo
    Carlos

    • Marcado como respuesta Dani Paredez miércoles, 15 de agosto de 2018 11:34
    miércoles, 15 de agosto de 2018 10:34

Todas las respuestas

  • Hola:
    En un Form con 1 DataGridView, copia y pega el siguiente código

    Option Explicit On
    Option Strict On
    Imports System.Data.SqlClient

    Public Class Form1
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
            Dim msCadenaSQL As String = "Data Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True"
            Try
                ' Configuramos una conexión con el origen de datos.
                Using loConexion As New SqlConnection(msCadenaSQL)
                    ' crear adaptador
                    Dim daOrders As New SqlDataAdapter("SELECT 0 AS numero, OrderId, OrderDate FROM Orders", loConexion)
                    ' instanciar datatable
                    Dim lDataTable As New DataTable
                    ' utilizar el dataadapte para llenar el datatable con la tabla
                    daOrders.Fill(lDataTable)
                    Dim liNumero As Integer = 0
                    Dim liGrupo As Integer = 0
                    For Each Fila As DataRow In lDataTable.Rows
                        If liNumero Mod 3 = 0 Then
                            liGrupo += 1
                        End If
                        Fila.Item("numero") = liGrupo
                        liNumero += 1
                    Next
                    Me.DataGridView1.DataSource = lDataTable
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
    End Class

    Un saludo desde Bilbo
    Carlos

    • Marcado como respuesta Dani Paredez miércoles, 15 de agosto de 2018 11:34
    miércoles, 15 de agosto de 2018 10:34
  • Hola J. Carlos Herrero, muchas gracias por responder, ya lo pude solucionar gracias a tu código

    quiero dejar no mas el código con la pequeñas correcciones que le hice para que funcione en mi caso.

            Dim liNumero As Integer = 0
            Dim liGrupo As Integer = 0
            For Each Fila As DataGridViewRow In lDataTable.Rows
                If liNumero Mod 3 = 0 Then
                    liGrupo += 1
                End If
                Fila.Cells("numero").Value = liGrupo
                liNumero += 1
            Next

    miércoles, 15 de agosto de 2018 11:34