Visual Basic.NET - Copiar de DataTable a DataGridView sin borrar registros anteriores,

 
Vista:
sin imagen de perfil
Val: 23
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Copiar de DataTable a DataGridView sin borrar registros anteriores,

Publicado por Jorge (17 intervenciones) el 31/10/2019 02:55:05
Buenas noches,
necesito pasar datos de un datatable a un datagridview sin borrar los datos anteriores,
el código que tengo es el siguiente:

1
2
3
4
5
6
7
8
9
10
' la consulta al servidor
Select Campo1, Campo2, Campo3
From Tabla
Where Campo1 = @valor
 
'lleno el datatable con la consulta
DataTable1 = TableAdapter1.GetDataBy1(valor)
 
'de esta manera refresca el DataGridView y vuelve a cargar todo nuevamente,
DataGridView1.DataSource = DataTable1

necesito cada vez que realice la consulta cree un registro nuevo en el DataGridView sin borrar lo anterior,
los códigos que he intentado me generan error, quedo agradecido con ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Copiar de DataTable a DataGridView sin borrar registros anteriores,

Publicado por Phil Rob (1546 intervenciones) el 31/10/2019 09:08:48
Hola,

Aproximativamente, sin haber testar, el código debería parecer al siguiente :

1
2
3
For R As integer = 0 to DataTable1.Rows.Count – 1
  DataGridView1.Rows.Add(DataTable1.Rows(UnCampo), DataTable1.Rows(UnOtroCampo),. )
Next

Espero darte una buena idea...


Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 23
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Copiar de DataTable a DataGridView sin borrar registros anteriores,

Publicado por Jorge Leyva (17 intervenciones) el 31/10/2019 22:01:08
Amigo muchas gracias por la pronta respuesta, pero me sale el siguiente error:

Value of type 'System.Windows.Forms.DataGridViewTextBoxColumn' cannot be converter to 'Integer'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Javier
Val: 150
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Copiar de DataTable a DataGridView sin borrar registros anteriores,

Publicado por Javier (77 intervenciones) el 31/10/2019 23:25:07
tienes que agregar las columnas en el DataGridView, lo puedes hacer por codigo antes de cargar los datos o en le diseñador de la vista, una vez que agregues las columnas llevas a cabo el proceso que te menciono Phil Rob
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Copiar de DataTable a DataGridView sin borrar registros anteriores,

Publicado por Phil Rob (1546 intervenciones) el 31/10/2019 23:50:44
Hola,

He supóngalo que tenías que agregar datos del mismo tipo que estos que ya existan en DataGridView.
Si el DataGridView no es del misma estructura no es tan fácil …, y si el DataGridView es vacia, tienes que hacer como dice Javier.
Quizá que tu pregunta no es bastande detallada ...
Envias mas codigos y extractos de la base de datos ...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 23
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Copiar de DataTable a DataGridView sin borrar registros anteriores,

Publicado por Jorge Leyva (17 intervenciones) el 01/11/2019 01:41:55
Amigo buenas noches,

con el fin de ver donde está el error solo cree 3 columnas y estos agregando las mismas 3 columnas desde el código, el error se mantiene,
en la tabla de sqlserver el formato del campo es varchar(50)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-2
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Copiar de DataTable a DataGridView sin borrar registros anteriores,

Publicado por Phil Rob (1546 intervenciones) el 01/11/2019 15:31:39
Hola Jorge,

Había anunciado que mi código estaba aproximativo. No estaba prohibido que reflexionas sobre la pista …

Aqui, este es el código de una prueba y las imágenes muestran que funciona (si habias enviado tu codigo, no estaba obligado de escribidir todo el codigo ).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Public Class FProba
 
    Private Sub DataGridView_Iniciar()
 
        If DataGridView1.RowCount > 0 Then
            DataGridView1.Rows.Clear()
            DataGridView1.Columns.Clear()
        End If
 
        DataGridView1.Columns.Add("Razon_Social", "Razon_Social")
        DataGridView1.Columns.Add("Materia_Prima", "Materia_Prima")
        DataGridView1.Columns.Add("Gasto_Fabric", "Gasto_Fabric")
        DataGridView1.Columns.Add("Neto", "Neto")
 
        DataGridView1.AllowUserToAddRows = False
 
        DataGridView1.Rows.Add("ACEROS", "8000.00", "0", "0")
        DataGridView1.Rows.Add("FAENA", "0", "1500", "0")
        DataGridView1.Rows.Add("AGUERO", "0", "0", "1800.00")
 
    End Sub
 
    Private Sub FProba_Load(sender As Object, e As EventArgs) Handles Me.Load
        DataGridView_Iniciar()
    End Sub
 
    Private Sub BReIniciar_Click(sender As Object, e As EventArgs) Handles BReIniciar.Click
        DataGridView_Iniciar()
    End Sub
 
    Private Sub BProbar_Click(sender As Object, e As EventArgs) Handles BProbar.Click
 
        Dim MiDT As New DataTable
        MiDT.Columns.Add("Razon_Social")
        MiDT.Columns.Add("Materia_Prima")
        MiDT.Columns.Add("Gasto_Fabric")
        MiDT.Columns.Add("Neto")
 
        MiDT.Rows.Add("ACEROS_2", "22.00", "22", "22")
        MiDT.Rows.Add("FAENA_2", "22", "33", "0")
        MiDT.Rows.Add("AGUERO_2", "33", "0", "33.00")
 
        For R As Integer = 0 To MiDT.Rows.Count - 1
 
            DataGridView1.Rows.Add(MiDT.Rows(R).Item("Razon_Social"), MiDT.Rows(R).Item("Materia_Prima"), MiDT.Rows(R).Item("Gasto_Fabric"), MiDT.Rows(R).Item("Neto"))
 
        Next
    End Sub
 
End Class

CopiarDT
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 23
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Copiar de DataTable a DataGridView sin borrar registros anteriores,

Publicado por Jorge Leyva (17 intervenciones) el 02/11/2019 01:24:41
hola amigo muchas gracias, ya me funcionó, yo había agregado las columnas desde el menú del DataGridView, utilcé el código como me mostraste y ya me funciona perfectamente,

como ayuda dejo el código con la consulta a SQLServer:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Select CampoAAA, CampoBBB, CampoCCC
From Tabla1
Where CampoAAA = @valor
 
'crea las columnas en el DataGridView
Sub DataGridView1Iniciar
If DataGridView1.RowCount > 0 then
DataGridView1.Rows.Clear()
DataGridView1.Columns.Clear()
End If
DataGridView1.Columns.Add(“CampoAAA”, “CampoAAA”)
DataGridView1.Columns.Add(“CampoBBB”, “CampoBBB”)
DataGridView1.Columns.Add(“CampoCCC”, “CampoCCC”)
End Sub
 
Sub CodigoAgrega
'lleno el datatable con la consulta
DataTable1 = TableAdapter1.GetDataBy1(valor)
 
'código agrega campos
For R As Integer = 0 To DataTable1.Rows.Count – 1
DataGridView1.Rows.Add(DataTable1.Rows(R).Item(“CampoAAA”),etc…)
End Sub

Muchas Gracias Phil Rob y Javier por la ayuda, quedo bien agradecido…
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar