sumar columna de datagridview en visual basic net

8
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 desarrollando una aplicación de tal manera que algunas veces necesitamos sumar columnas numéricas del datagridview y sobre todo presentarlas al final del mismo. Entonces para ello mostremos una grilla llena de cantidades numéricas que se desea sumar y al final quede así: Recuerda que debes poner en las propiedades del control datagridview {AllowUserToAddRows=False}para evitar que el control agregue automáticamente filas Al final el código sobre el botón: Private Sub Btnsumar_Click(sender As System.Object, e As System.EventArgs) Handles Btnsumar.Click Try Dim n As Integer = 4 ' numero contador Dim cantidad(n) As Integer 'matriz para almacenar hasta n valores Dim valor As Double = 0.18 'valor de un articulo en común

Upload: bladdy-agueero

Post on 15-Sep-2015

688 views

Category:

Documents


12 download

DESCRIPTION

Sumar Columna de Datagridview en Visual Basic Net

TRANSCRIPT

Sumar columna de Datagridview en Visual Basic NetdHola amigos..esta es otra entrega quetal vezles seratilesen momentos queestndesarrollando unaaplicacin de tal manera que algunas veces necesitamos sumar columnasnumricasdel datagridview y sobre todo presentarlas al final del mismo.Entonces para ello mostremos una grilla llena de cantidadesnumricasque se desea sumar y al final quedeas:

Recuerda que debes poner en las propiedades del control datagridview {AllowUserToAddRows=False}para evitar que el control agregueautomticamentefilasAl final elcdigosobre elbotn:Private Sub Btnsumar_Click(sender As System.Object, e As System.EventArgs) Handles Btnsumar.Click

TryDim n As Integer = 4 ' numero contadorDim cantidad(n) As Integer 'matriz para almacenar hasta n valoresDim valor As Double = 0.18 'valor de un articulo en comnDim subtotal(n) As Double ' matriz que almacena los subtotales de cada compraDim suma As Double 'almacena el total de la suma de la columna subtotalFor i As Integer = 0 To n - 1 cantidad(i) = Val(InputBox("Ingresar cantidad N" & i + 1))

Next

For i As Integer = 0 To n - 1subtotal(i) = cantidad(i) * valorsuma = suma + subtotal(i)Nextgrid1.Rows.Add(n + 1) 'numero de filas del gridFor r As Integer = 0 To n - 1grid1.Item(0, r).Value = r + 1grid1.Item(1, r).Value = Format(cantidad(r), "0.00")grid1.Item(2, r).Value = Format(valor, "0.00")grid1.Item(3, r).Value = Format(subtotal(r), "0.00")grid1.Item(2, n).Value = "TOTALES="grid1.Item(3, n).Value = Format(suma, "0.00")NextCatch ex As KeyNotFoundExceptionMessageBox.Show("Error de concurrencia:" & vbCrLf & ex.Message)End TryEnd Sub

Combo1.Datasource = Nothingse te limpia el combo.Bueno tambien veo que ahi pones

da.Fill(ds)

intenta poniendo antes de esods = new DataSet()da.Fill(ds)Simple ejemplo en visual basic.net , para cargar un campo de una tabla en un control ComboBoxEn el ejemplo, primero se crea una nueva conexin hacia la base de datos de de sql server., en este caso se llama base_pruebaPaso 2, se crea un SqlCommand pasndole la consulta , por ejemplo : "Select Campo From Tabla"Paso 3 se llena un DataSet con los datosPaso 4 se asigna al DataSource del ComboBox el datasetPaso 5 Se indica a la propiedad DisplayMember del combobox , el nombre del campo a visualizarCdigo fuenteTexto planoImprimir1. OptionExplicitOn2. OptionStrictOn3. 4. 'Espacio5. ImportsSystem.Data.SqlClient6. 7. PublicClassForm18. 'Cadenadeconexin9. PrivateConstcsAsString="DataSource=(local)\SQLEXPRESS;"&_10. "IntegratedSecurity=True;"&_11. "InitialCatalog=bd_prueba"12. 13. PrivateSubForm1_Load(_14. ByValsenderAsSystem.Object,_15. ByValeAsSystem.EventArgs)HandlesMyBase.Load16. 17. 'enviarelcontrolComboBoxylaconsulta18. cargar_Combo(ComboBox1,"SelectApellidoFromt_clientes")19. 20. EndSub21. 22. PrivateSubcargar_Combo(_23. ByValComboBoxAsComboBox,_24. ByValsqlAsString)25. 26. 'nuevaconexinindicandoalSqlConnectionlacadenadeconexin27. DimcnAsNewSqlConnection(cs)28. 29. Try30. 31. 'AbrirlaconexinaSql32. cn.Open()33. 34. 'PasarlaconsultasqlylaconexinalSqlCommand35. DimcmdAsNewSqlCommand(sql,cn)36. 37. 'InicializarunnuevoSqlDataAdapter38. DimdaAsNewSqlDataAdapter(cmd)39. 40. 'CrearyLlenarunDataset41. DimdsAsNewDataSet42. da.Fill(ds)43. 44. 'asignarelDataSourcealcombobox45. ComboBox.DataSource=ds.Tables(0)46. 47. 'AsignarelcampoalapropiedadDisplayMemberdelcombo48. ComboBox.DisplayMember=ds.Tables(0).Columns(0).Caption.ToString49. 50. CatchexAsException51. MessageBox.Show(ex.Message.ToString,_52. "error",MessageBoxButtons.OK,_53. MessageBoxIcon.Error)54. Finally55. Ifcn.State=ConnectionState.OpenThen56. cn.Close()57. EndIf58. EndTry59. EndSub60. EndClass

Cdigo de ejemplo en Visual Basic.NET para crear un formulario Maestro Detalle utilizando dos controles DataGridViewEl formulario contiene dos DataGridview. El DataGridView1 es para la tabla maestro donde se cargan los regisros de una tabla (tabla clientes) , y en el otro control DatagridView, los datos de la tabla pedidos para el detalleAmbas tablas tienen un campo en comn, (IdCliente). Al seleccionar un registro del DV Maestro, se visualiza en el detalle , el o los pedidos de ese cliente en el otro DVPara el ejemplo se necesita: colocar dos controles DataGridview en el formulario ( llamados DvMaestro y DvDetalle ) Indicar el campo en comn para ambas tablas en la variable 'campo_Relacionado'. Indicar las consultas sql para cargar los registros en ambas grillasFormulario

Cdigo fuenteTexto planoImprimir1. OptionExplicitOn2. OptionStrictOn3. 4. ImportsSystem.Data.SqlClient5. 6. PublicClassForm17. 8. 'cadenadeconexin9. PrivateConstcsAsString="DataSource=(local)\SQLEXPRESS;"&_10. "InitialCatalog=la_base_de_datos_sql;"&_11. "IntegratedSecurity=true"12. 13. 'camporelacionadoparalasdostablas14. ''''''''''''''''''''''''''''''''''''''''''''''''''''''15. PrivateConstcampo_RelacionadoAsString="IdCliente"16. 17. PrivateSubForm1_Load(_18. ByValsenderAsSystem.Object,_19. ByValeAsSystem.EventArgs)HandlesMyBase.Load20. 21. 'crearnuevaconexin22. DimconexionAsNewSqlConnection(cs.ToString)23. 24. 25. 26. Try27. 'abrirlaconexinconlabasededatos28. conexion.Open()29. 30. 'NuevoobjetoDataset31. DimDataSetAsNewDataSet32. 33. 34. '''''''''''''''''''''''''''''''''''''''''''''''''''''35. 'DataGridViewmaestro36. '''''''''''''''''''''''''''''''''''''''''''''''''''''37. 38. DimAdaptadorAsNewSqlDataAdapter()39. DimcomandoAsNewSqlCommand40. 41. Withcomando42. 'AsignarelsqlparaseleccionarlosdatosdelatablaMaestro43. .CommandText="SELECTidcliente,Nombre,ApellidoFROMtClientes"44. .Connection=conexion45. EndWith46. 47. WithAdaptador48. .SelectCommand=comando49. 'llenareldataset50. Adaptador.Fill(DataSet,"Maestro")51. EndWith52. 53. 'EnlazarelDataGridViewaldataset54. WithDvMaestro55. .DataMember="Maestro"56. .DataSource=DataSet57. 58. .SelectionMode=DataGridViewSelectionMode.FullRowSelect59. .DefaultCellStyle.BackColor=Color.AliceBlue60. EndWith61. 62. '''''''''''''''''''''''''''''''''''''''''''''''''''''63. 'DataGridViewdetalle64. '''''''''''''''''''''''''''''''''''''''''''''''''''''65. 66. Withcomando67. 'cadenasqlparacargarlatablapedidos68. .CommandText="SELECTidcliente,FechaPedido,FechaEntrega,Monto,DestinoFROMtPedidos"69. EndWith70. 71. WithAdaptador72. .SelectCommand=comando73. 'llenareldataset74. Adaptador.Fill(DataSet,"Detalle")75. EndWith76. 77. 'Agregarlarelacin(campoencomn:campo_Relacionado=idCliente)78. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''79. WithDataSet80. .Relations.Add("mi_Relacion",_81. .Tables("Maestro").Columns(campo_Relacionado),_82. .Tables("Detalle").Columns(campo_Relacionado))83. EndWith84. 85. 86. 'EstablecerelDataSourceyelDataMemberparaelDataGridviewDetalle87. WithDvDetalle88. .DataSource=DataSet89. .DataMember="Maestro.mi_Relacion"90. .SelectionMode=DataGridViewSelectionMode.FullRowSelect91. EndWith92. 93. 'cerrarlaconexn94. Withconexion95. If.State=ConnectionState.OpenThen96. .Close()97. EndIf98. .Dispose()99. EndWith100. 101. CatchexAsException102. MsgBox(ex.Message.ToString)103. EndTry104. 105. Me.Text="FormularioMaestroDetallecondataGridviews"106. 107. 108. EndSub109. 110. EndClass