Problemas al Añadir texto mas de una vez en un DataGridView

TEngo la siguiente duda cuando ejecuto el botón de imprimir para que los valores se pase mi reporte crystal; todo funcioona bien; pero al querer añadir otro renglo a mi DataGried mez me manda el siguiente error:

"No se pueden agregar filas mediante programación a la colección de filas de DataGridView cuando el control está enlazado a datos."

Esta es mi instrucción de código:

Me. DataGridView1. Rows. Add(Me. TextBox4.Text, CInt(CStr(Me. ComboBox1. SelectedValue)), Me. RichTextBox1.Text, Me. TextBox5.Text)
Me. DataGridView1. Refresh()

Respuesta
1

La slineas se adicionan haciendo nuevamente la consulta a la Base de datos y asignado el resultado al dataSource del control

Perdona mi ignorancia experto; no entendí; como se debe hacerlo

Me podrías ayudar como

Gracias

¿Cómo estas llenando el datagridView?

Lo hago de esta forma tengo la siguiente función de buscar_codigo()

tabla = New DataTable
adaptador = New OleDb.OleDbDataAdapter("SELECT * FROM reg_prod", conexión)
constructor = New OleDb.OleDbCommandBuilder(adaptador)
adaptador.Fill(tabla)

Después lo paso a un combobox

buscar_codigo()
Me.ComboBox1.DataSource = tabla
Me.ComboBox1.ValueMember = "código"

Y en el datagried es cuando añado el registro y es cuando me manda el error

"No se pueden agregar filas mediante programación a la colección de filas de DataGridView cuando el control está enlazado a datos."

Tienes que crear una lista genérica List<Entidad> en donde Entidad es una clase que solo contiene propiedades para almacenar los datos, el List es para almacenar varios, luego este List<> se lo pasas a la propiedad Datasource del control

Hola experto; todavia no encuentro la forma de crear una lista genericaa

Me podrias ayudar a como se debe armar la lista con relacion a la informacion que previamente se proporciono; para despues pasarla a la propiedad de DataSource del Control.

Gracias; Espero y no incomode mi sugerencia.

Ya que no se como se debe realizar

Primero defines la entidad:

Public Class MiEntidad
Public Property Mipropiedad1 As String
Public Property Mipropiedad2 As String
Public Property Mipropiedad3 As String
Public Property Mipropiedad4 As String
Public Property Mipropiedad5 As String
End
Class

Luego la instancias y la llenas:

Dim lista As New List(Of MiEntidad)
Dim oEntidad As New MiEntidad
With oEntidad
.Mipropiedad1 =
"valor1"
.Mipropiedad2 =
"Valor2"
.Mipropiedad3 =
"Valor3"
.Mipropiedad4 =
"Valor4"
.Mipropiedad5 =
"valor5"
End With
' Lo Adicionas a la colección
lista.Add(oEntidad)
DataGridView1.DataSource = lista

Debes llenar todos las veces necesarias a oEntidad pro cada linea que necesites en la grila

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas