Sumar columna de Datagridview en Visual Basic Net d Hola amigos..esta es otra entrega que tal vez les sera útiles en momentos que estén estén desarrollando desarrollando una una aplicación de tal manera que que algunas veces necesitamos sumar columnas numéricas del datagridview y sore todo presentarlas al !nal del mismo. mismo. "ntonces para ello mostremos una grilla llena de cantidades numéricas que se desea sumar y al !nal quede as#$
%ecuerda %ecuerda que dees poner en las propiedades del control datagridview &'llow(ser)o'dd%ows*+alse,para evitar que el control agregue autom-ticamente !las 'l !nal el código sore el otón$ rivate Su Btnsumar/0lic12sender 's System.34ect5 e 's System."vent'rgs6 Handles Btnsumar.0lic1
)ry )ry Dim n 's 7nteger * 8 9 numero contador Dim cantidad2n6 's 7nteger 9matriz para almacenar :asta n valores Dim valor 's Doule * ;.<= 9valor de un articulo en común Dim sutotal2n6 's Doule 9 matriz que almacena los sutotales de cada compra Dim suma 's Doule 9almacena el total de la suma de la columna sutotal +or i 's 7nteger * ; )o n > <
cantidad2i6 * Val27nputBo?2@7ngresar cantidad NA@ i C <66
Ne?t
+or i 's 7nteger * ; )o n > < sutotal2i6 * cantidad2i6 valor suma * suma C sutotal2i6 Ne?t grid<.%ows.'dd2n C <6 9numero de !las del grid +or r 's 7nteger * ; )o n > < grid<.7tem2;5 r6.Value * r C < grid<.7tem2<5 r6.Value * +ormat2cantidad2r65 @;.;;@6 grid<.7tem2E5 r6.Value * +ormat2valor5 @;.;;@6 grid<.7tem2F5 r6.Value * +ormat2sutotal2r65 @;.;;@6 grid<.7tem2E5 n6.Value * @)3)'G"S*@ grid<.7tem2F5 n6.Value * +ormat2suma5 @;.;;@6 Ne?t 0atc: e? 's eyNot+ound"?ception IessageBo?.S:ow2@"rror de concurrencia$@ v0rGJ e?.Iessage6 "nd )ry "nd Su
Combo1.Datasource = Nothing se te limpia el combo.
Bueno tambien veo que ahi pones da.Fill(ds) intenta poniendo antes de eso ds = new DataSet() da.Fill(ds)
Simple ejemplo en visual basic.net , para cargar un campo de una tabla en un control omboBo! "n el ejemplo, primero se crea una nueva cone!i#n hacia la base de datos de de sql server., en este caso se llama base$prueba %aso &, se crea un Sqlommand pas'ndole la consulta , por ejemplo Select ampo From *abla %aso + se llena un DataSet con los datos %aso se asigna al DataSource del omboBo! el dataset %aso - Se indica a la propiedad Displa/ember del combobo! , el nombre del campo a visuali0ar #digo 1uente Texto plano Imprimir 1.
Option Explicit On
2.
Option Strict On
3. 4.
' Espacio
5.
Imports System.Data.SqlClient
6. 7.
!"lic Class #orm1
$.
' Ca%ena %e conexi&n
.
ri(ate Const cs )s Strin* + ,Data So!rce+-local/S0EESS,
1.
,Inte*rate% Sec!rity+8r!e,
11.
,Initial Catalo*+"%pr!e"a,
12. 13. 14.
ri(ate S!" #orm1oa%- 9y:al sen%er )s System.O";ect<
15.
9y:al e )s System.E(ent)r*s =an%les >y9ase.oa%
16. 17.
'en(iar el control Com"o9ox y la cons!lta
1$.
car*arCom"o-Com"o9ox1< ,Select )pelli%o #rom tclientes,
1. 2.
En% S!"
21. 22.
ri(ate S!" car*arCom"o-
23.
9y:al Com"o9ox )s Com"o9ox<
24.
9y:al sql )s Strin*
25. 26.
' n!e(a conexi&n in%ican%o al SqlConnection la ca%ena %e conexi& n
27.
Dim cn )s ?e@ SqlConnection-cs
2$. 2.
8ry
3. 31.
' )"rir la conexi&n a Sql
32.
cn.Open-
33. 34.
' asar la cons!lta sql y la conexi&n al Sql Comman%
35.
Dim cm% )s ?e@ SqlComman%-sql< cn
36. 37.
' InicialiAar !n n!e(o SqlData)%apter
3$.
Dim %a )s ?e@ SqlData)%apter-cm%
3. 4.
'Crear y lenar !n Dataset
41.
Dim %s )s ?e@ DataSet
42.
%a.#ill-%s
43. 44.
' asi*nar el DataSo!rce al com"o"ox
45.
Com"o9ox.DataSo!rce + %s.8a"les-
46. 47.
' )si*nar el campo a la propie%a% Display>em"er %el com"o
4$.
Com"o9ox.Display>em"er + %s.8a"les-.Col!mns-.Caption.8oS trin*
4. 5.
CatcB ex )s Exception
51.
>essa*e9ox.SBo@-ex.>essa*e.8oStrin*<
52.
,error,< >essa*e9ox9!ttons.O<
53.
>essa*e9oxIcon.Error
54.
#inally
55.
I cn.State + ConnectionState.Open 8Ben
56.
cn.Close-
57. 5$. 5.
En% I En% 8ry En% S!"
6. En% Class
#digo de ejemplo en 2isual Basic.3"* para crear un 1ormulario /aestro Detalle utili0ando dos controles Data4rid2iew "l 1ormulario contiene dos Data4ridview. "l Data4rid2iew5 es para la tabla maestro donde se cargan los regisros de una tabla (tabla clientes) , en el otro control Datagrid2iew, los datos de la tabla pedidos para el detalle 6mbas tablas tienen un campo en com7n, (8dliente). 6l seleccionar un registro del D2 /aestro, se visuali0a en el detalle , el o los pedidos de ese cliente en el otro D2
%ara el ejemplo se necesita
•
colocar dos controles Data4ridview en el 1ormulario ( llamados Dv/aestro DvDetalle )
•
8ndicar
el
campo
en
com7n
para
ambas
tablas
en
la
9campo$:elacionado9. •
8ndicar las consultas sql para cargar los registros en ambas gr illas
Formulario
#digo 1uente
Texto plano Imprimir 1.
Option Explicit On
2.
Option Strict On
3. 4. 5.
Imports System.Data.SqlClient
variable
6.
!"lic Class #orm1
7. $.
' ca%ena %e conexi&n
.
ri(ate Const cs )s Strin* + ,Data So!rce+-local/S0EESS,
1.
,Initial Catalo*+la"ase%e%atossql,
11.
,Inte*rate% Sec!rity+tr!e,
12. 13.
' campo relaciona%o para las %os ta"las
14.
' '''''''''''''''''''''''''''''''''''''''''''''''''''''
15.
ri(ate Const campoelaciona%o )s Strin* + ,I%Cliente,
16. 17.
ri(ate S!" #orm1oa%-
1$.
9y:al sen%er )s System.O";ect<
1.
9y:al e )s System.E(ent)r*s =an%les >y9ase.oa%
2. 21.
' crear n!e(a conexi&n
22.
Dim conexion )s ?e@ SqlConnection-cs.8oStrin*
23. 24. 25. 26.
8ry
27.
' a"rir la conexi&n con la "ase %e %atos
2$.
conexion.Open-
2. 3.
' ?!e(o o";eto Dataset
31.
Dim DataSet )s ?e@ DataSet
32. 33. 34.
' ''''''''''''''''''''''''''''''''''''''''''''''''''''
35.
' Datari%:ie@ maestro
36.
' ''''''''''''''''''''''''''''''''''''''''''''''''''''
37. 3$.
Dim )%apta%or )s ?e@ SqlData)%apter-
3.
Dim coman%o )s ?e@ SqlComman%
4. 41.
FitB coman%o
42.
' )si*nar el sql para seleccionar los %atos %e la ta"la >aestro
43.
.Comman%8ext + ,SEEC8 i%cliente tC lientes,
44. 45.
.Connection + conexion En% FitB
46. 47.
FitB )%apta%or
4$.
.SelectComman% + coman%o
4.
' llenar el %ataset
5.
)%apta%or.#ill-DataSet< ,>aestro,
51.
En% FitB
52. 53.
' EnlaAar el Datari%:ie@ al %ataset
54.
FitB D(>aestro
55.
.Data>em"er + ,>aestro,
56.
.DataSo!rce + DataSet
57. 5$.
.Selection>o%e + Datari%:ie@Selection>o%e.#!llo@Select
5.
.Dea!ltCellStyle.9acGColor + Color.)lice9l!e
6. 61.
En% FitB
62.
' ''''''''''''''''''''''''''''''''''''''''''''''''''''
63.
' Datari%:ie@ %etalle
64.
' ''''''''''''''''''''''''''''''''''''''''''''''''''''
65. 66.
FitB coman%o
67. 6$.
' ca%ena sql para car*ar la ta"la pe%i%os .Comman%8ext + ,SEEC8 i%cliente<#ecBae%i%o< #ecBaEntre *a<>onto te%i%os,
6.
En% FitB
7. 71.
FitB )%apta%or
72.
.SelectComman% + coman%o
73.
' llenar el %ataset
74.
)%apta%or.#ill-DataSet< ,Detalle,
75.
En% FitB
76. 77.
' )*re*ar la relaci&n - campo en comHn campoelaciona%o + i%Cliente
7$.
' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''
7.
FitB DataSet
$.
.elations.)%%-,mielacion,<
$1. %o<
.8a"les-,>aestro,.Col!mns-campoelaciona
$2. %o
.8a"les-,Detalle,.Col!mns-campoelaciona
$3.
En% FitB
$4. $5. $6.
' Esta"lecer el DataSo!rce y el Data>em"er para el Datari%( ie@ Detalle
$7.
FitB D(Detalle
$$.
.DataSo!rce + DataSet
$.
.Data>em"er + ,>aestro.mielacion,
.
.Selection>o%e + Datari%:ie@Selection>o%e.#!llo@Select
1.
En% FitB
2. 3.
' cerrar la conexJ&n
4.
FitB conexion
5.
I .State + ConnectionState.Open 8Ben
6.
.Close-
7.
En% I
$.
.Dispose-
.
En% FitB
1. 11.
CatcB ex )s Exception
12. 13.
>s*9ox-ex.>essa*e.8oStrin* En% 8ry
14. 15.
>e.8ext + ,#orm!lario >aestro Detalle con %atari%(ie@s,
16. 17. 1$.
En% S!"
1. 11.
En% Class