Actualizar una Tabla de una BD SQL utilizando un DataGridView

A menudo en los foros aparece la pregunta de cómo actualizar una BD utilizando un DataGridView. Aquí os dejo una forma de realizarlo. Espero que os sea útil.

Saludos,
Pep Lluis,

'
'Definir enlace a datos y objetos del form

Private MiConexion As New SqlConnection( _

   "Datasource=.\SQLEXPRESS;AttachDbFilename=C:\Temp\NORTHWND.MDF" + _
   ";Integrated Security=True;Connect Timeout=30;User Instance=True")
Private MiAdaptador As New SqlDataAdapter("SELECT * FROM Shippers", MiConexion)
Private MiDataSet As New DataSet()

Private MiEnlazador As New BindingSource

 

Private MidataGriView As New DataGridView

Private BotonGuardar As New Button

'

'En tiempo de carga...
Private Sub Form1_Load(…..) Handles MyBase.Load
    MessageBox.Show(My.Computer.FileSystem.CurrentDirectory)

    'Poner titulo a la aplicacion

    Me.Text = "Mantenimiento de Shippers"

    'Añadir DataGriView

    MidataGriView.Dock = DockStyle.Top

    Me.Controls.Add(MidataGriView)

    BotonGuardar.Dock = DockStyle.Bottom

    'Añadir Boton de Guardar

    BotonGuardar.Text = "Guardar Cambios"

    Me.Controls.Add(BotonGuardar)

    AddHandler BotonGuardar.Click, AddressOf Guardar
    Dim commandbuilder As New SqlCommandBuilder(Me.MiAdaptador)

    MiConexion.Open()

    MiAdaptador.Fill(MiDataSet)

    MiEnlazador.DataSource = MiDataSet.Tables(0)

    MidataGriView.DataSource = MiEnlazador

End Sub

'

'Actualizar la tabla enlazada con el DataGridView

Private Sub Guardar(…..)
    Me.MiAdaptador.Update(CType(Me.MiEnlazador.DataSource, DataTable))

End Sub

Published Wed, Jul 23 2008 18:22 by peplluis
Filed under: ,

Comments

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Thursday, November 06, 2008 10:50 AM by Walter

Muy buen articulo, te felicito, estuve buscando en varios foros y nadie parece tener claro este tema.

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Thursday, January 15, 2009 6:19 PM by Daniel

Hola PepLluis, gracias por tu aportacion, muy buena, pero sabes quisiera saber si tendras algun ejemplo de codigo en V.B.Net donde por medio de datos que se obtienen de captura en Textbox, esos datos poder insertarlos en campos de una Tabla usando un procedimiento almacenado,  se que no es complicado pero hay que saber el procedimiento y es algo que no he podido encontrar en internet, de antemano agradezco tus atenciones.

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Friday, January 16, 2009 4:20 PM by peplluis

Hola Daniel,

Supongo que imperdonable, pero ciertamente no tengo ninguno. Tomo nota y veo si posteo alguno en cuanto tenga un hueco.

Saludos y gracias.

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Monday, April 20, 2009 10:57 PM by Gosuna

Hey esta muy bueno.

Pero no se podrias indicarnos como guardar datos de un datagridview no enlazado.

Yo lleno un datra grid view no enlazado a ni una tabla.

utilizo Insert Into pero solamente se guarda el primer registro

y cuando utilizo for each row

solo se almacena el ultimo registro de mi datagridview.

espero puedas ayudarme te lo agradecere mucho

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Wednesday, April 22, 2009 3:42 AM by peplluis

Hola Gosuna,

Quizas lo mas practico sera que me mandes el fragmento de codigo que estas intentando, para poder ver como lo estas enfocando. Puedes hacerlo contactando directamente conmigo a traves de la opcion [Contact] de este blog.

Espero tus noticias,

Pep Lluis,

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Friday, October 23, 2009 11:59 AM by Ernesto

tengo un problema.....tengo un codigo que me inserta una columa de un dataGridView....pero lo hace muy lento; quisiera saber si existe alguna forma de como inserta todo un lote de dato a una BD ACCESS de una forma rapida!!!

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Monday, October 26, 2009 1:44 PM by peplluis

Hola Ernesto,

Lamento no tener respuesta para esta pregunta... pues dependera de las condiciones que se presenten en tu maquina... procesador, entorno, version... y la mas importante, el procedimiento utilizado para realizar esa actualizacion. Sin mas detalles se hace imposible intuir la solucion.

Saludos,

Pep Lluis,

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Wednesday, November 04, 2009 11:16 AM by Ema

Excelente post,

Igual que Gosuna tengo la duda si funcionara con un datagrid no enlazado. Y no se si exista una forma de que solo se graben ciertas columnas en la base de datos.

Saludos

De antemano agradezco su ayuda

******

Les muestro el código uso para cargar un documento de texto a un datagrid:

'Defino base de datos a la cual conectarse

Dim sqlconnection As New System.Data.SqlClient.SqlConnection("Conexion al server")

       Dim cmd As New System.Data.SqlClient.SqlCommand

       Dim myTable As DataTable = New DataTable("MyTable")

       Dim i As Integer

       Dim myRow As DataRow

       Dim fieldValues As String()

       Dim f As IO.File

       Dim myReader As IO.StreamReader

       Try

           'abre el archivo y cuenta cuantas columnas hay.

           myReader = f.OpenText("\\carpeta compartidadelared\archivodetexto.txt")

           fieldValues = myReader.ReadLine().Split("|")

           'Crea las columnas conforme deben de ir

           For i = 0 To fieldValues.Length() - 1

               myTable.Columns.Add(New DataColumn("Field" & i))

           Next

           'Añade la primer linea a la data table

           myRow = myTable.NewRow

           For i = 0 To fieldValues.Length() - 1

               myRow.Item(i) = fieldValues(i).ToString

           Next

           myTable.Rows.Add(myRow)

           'Lee el resto y lo pasa al datatable

           While myReader.Peek <> -1

               fieldValues = myReader.ReadLine().Split("|")

               myRow = myTable.NewRow

               For i = 0 To fieldValues.Length() - 1

                   myRow.Item(i) = fieldValues(i).ToString

               Next

               myTable.Rows.Add(myRow)

           End While

           Me.DataGridView1.DataSource = myTable

       Catch ex As Exception

           MsgBox("Error building datatable: " & ex.Message)

           'Return New DataTable("Empty")

       Finally

           myReader.Close()

       End Try

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Tuesday, November 17, 2009 6:08 PM by aracely

hola solo quiero saber como le hago para actualizar los datos y que no es dupliquen, es decir tengo este codigo...

Try

cad = "update vehiculo set num_motor='" & TextBox2.Text & _

"',num_serie=" & TextBox3.Text & _

", marca= '" & TextBox4.Text & _

"',modelo= " &TextBox5.Text & _

", placas = '" & TextBox6.Text & _

" ', kilometros = " & TextBox7.Text & _

" ,fecha_ing = '"DateTimePicker1.Value.ToShortDateString & _

"',otras_carct='" & TextBox19.Text & _

" where num_eco = " & TextBox1.Text & "'"

Dim comando As New SqlCommand(cad, sqlcon)

                   If sqlcon.State = ConnectionState.Closed Then

                       sqlcon.Open()

                   End If

                   comando.ExecuteNonQuery()

               Catch

                   MsgBox("Ocurrio un error, por lo tanto no se puede Guardar este registro", MsgBoxStyle.ApplicationModal)

                   sqlcon.Close()

               End Try

y si guarda los cambios nadamas que me duplica en todos los registros los mis mos datos que introdusco al modificar

si tiene un asolucion se lo agradecere.

espero la respuesta....

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Friday, November 27, 2009 9:52 AM by peplluis

Hola Aracely,

En todo caso si estas utilizando un DataGridView, si sigues este ejemplo para actualizarlo solo necesitas :

'

'Actualizar la tabla enlazada con el DataGridView

Private Sub Guardar(…..)

   Me.MiAdaptador.Update(CType(Me.MiEnlazador.DataSource, DataTable))

End Sub

En otro caso a falta de saber sobre el codigo que estas utilizando, puedes contactar directamente conmigo, para ver como puedo ayudarte.

Saludos,

Pep Lluis,

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Friday, October 08, 2010 11:26 AM by Edwin

Podrias ayudarme ya que no he podido realizar la actualizacion desde el datagridview, me muestra el siguiente error:

INVALIDOPERATIONEXCEPTION WAS UNHANDLED.- La generación SQL dinámica para UpdateCommand no es compatible con SelectCommand, que no devuelve ninguna información sobre columnas clave.

el codigo es el siguiente:

Imports System

Imports System.Data

Imports System.Data.SqlClient

Imports System.Data.SqlTypes

Public Class FrmOpyMttoPozos

   Dim stringConexion As String = "server=142.68.200.1;uid=sa;pwd=123;database=SIAP"

   Private MiConexion As New SqlConnection(stringConexion)

   Private MiAdaptador As New SqlDataAdapter("SELECT * FROM tblOpyMtto", MiConexion)

   Private MiDataSet As New DataSet()

   Private MiEnlazador As New BindingSource

   Private Sub FrmOpyMttoPozos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

       Dim commandbuilder As New SqlCommandBuilder(Me.MiAdaptador)

       MiConexion.Open()

       MiAdaptador.Fill(MiDataSet)

       MiEnlazador.DataSource = MiDataSet.Tables(0)

       DataGridRevisiones.DataSource = MiEnlazador

   End Sub

   Private Sub cmdGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdGuardar.Click

       Me.MiAdaptador.Update(CType(Me.MiEnlazador.DataSource, DataTable))

   End Sub

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Thursday, October 14, 2010 3:37 AM by peplluis

Edwin,

Precisamente te esta avisando de que tu tabla no define ninguna clave y no puede generarte el commandbuilder... si defines una clave principal desaparecera tu problema.

Saludos,

Pep Lluis,

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Monday, April 25, 2011 1:25 PM by DAVID

TENGO EL SIGUIENTE CODIGO PERO AL ENTRAR AL UPDATE ME DEVUELVE EL SIGUIENTE ERROR:(LA FECHA EN EL DGV ESTA EN dd/MM/yyyy) EJEMPLO 01/04/2011

CODIGO

If (MsgBox("QUIERES GUARDAR LOS CAMBIOS ?", MsgBoxStyle.YesNo, "GUARDAR")) = MsgBoxResult.Yes Then

           Cursor.Current = Cursors.WaitCursor

           CNN.Open()

           SDA_CUENTA.Fill(DST_CUENTA)

           BDS_CUENTA.DataSource = DST_CUENTA.Tables(0)

           DGV_CUENTA.DataSource = BDS_CUENTA

           SDA_CUENTA.Update(DST_CUENTA, "TBL_CUENTA")

          CNN.Close()

          Cursor.Current = Cursors.Arrow

           MsgBox("DATOS ALMACENADOS EXITOSAMENTE", MsgBoxStyle.Information, "ALMACENAMIENTO EXITOSO")

       End If

ERROR

Desbordamiento de SqlDateTime. Debe estar entre 1/1/1753 12:00:00 AM y 12/31/9999 11:59:59 PM.

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Wednesday, April 27, 2011 6:17 AM by peplluis

Hola David,

Mira a ver si esta informacion puede ayudarte.

msmvps.com/.../update-me-devuelve-error-con-la-fecha-del-dgv.aspx

Saludos,

Pep Lluis,

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Monday, November 28, 2011 4:51 PM by abel

saludos

cuando le doy actualizar me da el siguiente error

Update requires a valid InsertCommand when passed DataRow collection with new rows.

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Sunday, December 11, 2011 10:55 PM by Fabian V

Esta  muy  bueno me  sirvio  muchisimo

a partir  de este  puedo  sacar  otras  cosas

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Tuesday, February 14, 2012 3:30 AM by karla

Hola, a mi tambien me sale el sig error  'La generación SQL dinámica para UpdateCommand no es compatible con SelectCommand, que no devuelve ninguna información sobre columnas clave,     ya defini la clave primaria pero el error persiste y no se q hacer....gracias...

# Quiero Actualizar las filas pero editando las celdas de un data gridciew en visual 2010 y sql 2008

Thursday, March 29, 2012 1:07 PM by Jonathan Almendras

sera que me podian ayudar,,,,  

1)quiero saber si puedo obtener si una celda esta vacia..

2)editar las celas.. pero al mismo tiempo hacer un update y que las filas que he insertado que me haga un inter into TableName

le agradeceria de antemano

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Thursday, March 29, 2012 1:10 PM by Jonathan Almendras

1 actualizar las celdas de la gilla pero que me haga un insert y un update

gracias de antemano si me podrian ayudar

# re: Actualizar una Tabla de una BD SQL utilizando un DataGridView

Wednesday, July 11, 2012 8:06 PM by Eduardo

Alguien me Puede Ayudar.. el siguiente.. error.

Error de sintaxis en la instrucción INSERT INTO.

Leave a Comment

(required) 
(required) 
(optional)
(required) 
If you can't read this number refresh your screen
Enter the numbers above: