Guardar contenido de dataGridView en base de datos SQL Server, VB.net

Поділитися
Вставка
  • Опубліковано 27 січ 2025

КОМЕНТАРІ • 72

  • @bernardofuentes8915
    @bernardofuentes8915 7 років тому +9

    Hola, si tenemos habilitada la propiedad allowUserToAddRows en el datagrid entonces después del for each fila in datagridview1.rows vamos a poner el siguiente código.
    If row.Index = Datagridviw1.Rows.Count - 1 Then
    Exit For
    End If
    con esto no nos tomara la ultima fila, y así podremos usar de manera dinámica el datagridview.
    Gracias amigo por tus aportes @Israel Sistemas saludos!

    • @IsraelSistemas
      @IsraelSistemas  7 років тому

      excelente contribucion amigo, muchas gracias por tu comentario y aporte =)

  • @jorgearturoorozcomolina7365
    @jorgearturoorozcomolina7365 9 років тому

    Gracias, excelente video que has compartido. Mil gracias, me ayudo mucho. Si todas las explicaciones fueran de este tipo, los foros serian una maravilla, pero lamentablemente muchas veces lo que hacen es confundir.

    • @IsraelSistemas
      @IsraelSistemas  9 років тому

      Jorge Arturo Orozco Molina muchas gracias por tu comentario, hago lo que puedo. Saludos =)

  • @INGSANTANARD
    @INGSANTANARD 8 років тому

    Bien echo Hermano en mi caso quería guardar en una tabla sql unos datos que importaba de excel, tuve que ponerle (fila.Cells.Item("Nombre").Value)) para así tomar el nombre del encabezado que necesitaba.

  • @waltervarela7551
    @waltervarela7551 8 років тому +1

    muy buen aporte pero tengo una pregunta yo tengo que aguardar un datagriview en una tabla pero yo tengo en mi tabla un campo de ID Auto Incrementable y me tira el siguiente Error ...column count doesn't match value count at row 1 pero si le elimino ese campo si me guarda bien pero necesito ese campo auto incrementable que puedo hacer..???

  • @jairobandera3219
    @jairobandera3219 3 роки тому +1

    Hola, por si alguno esta en el 2022 jajajaj y quieren que se detenga en la ultima fila vacia ponga.
    If fila.Cells(0).Value = "" Or fila.Cells(0).Value = Nothing Then
    Exit For
    else
    'el resto del codigo para cuando si tenga datos

  • @mariansalome
    @mariansalome 9 років тому

    Hola
    guarde las consultas en una tabla diferente a la de la consulta intentado pero no consigo el código adecuado le agradezco su colaboración y su pronta respuesta
    gracias!!!

  • @misteryo4155
    @misteryo4155 6 років тому +2

    Si tienes 1000 filasen el GridView, ¿Sería óptimo realizar el mismo procedimiento? Pues se tendría que acudir al servidor 1000 veces.

    • @saulrios6168
      @saulrios6168 4 роки тому

      Hola creo que no, por que antes del for ya abris la conexión al database, y dentro del for guardas todos los registros de una y una vez terminado el recorrido recien cerras la conexión :-)

  • @edycanel8828
    @edycanel8828 3 роки тому +1

    Excelente video amigo, puedes compartir el código para actualizar los valores en el datagrid Gracias.!!

  • @dioselinacossio208
    @dioselinacossio208 3 роки тому

    hola como estás, Israel necesito una ayuda suya, de como realizar una conexión de una base de datos de Sql server con datagriview con , sin códigos con vb.net
    Gracias....

  • @hectorgalaviz5600
    @hectorgalaviz5600 7 років тому +1

    Hola, primero que nada gracias por tu vídeo me fue de ayuda.
    Pero quisiera saber si tu puedes decirme como utilizar esto para guardar una consulta vista en un datagrid?
    es decir mostrara la consulta, al darle click me guardara los datos que se veían en dicha consulta.
    Es posible?
    También el como evitar que me de un registro con 0?
    Gracia! C:

  • @Alpha94L
    @Alpha94L 9 років тому +1

    Muy bueno el código, pero una duda, y si ya mi tabla tiene los datos (no tengo que ingresar nada, solo deseo guardar) que tendría que cambiar?

    • @IsraelSistemas
      @IsraelSistemas  9 років тому

      Luis Morales no, si tu tabla tiene ya los datos, simplemente guarda y listo :)

    • @Alpha94L
      @Alpha94L 9 років тому

      Esa es mi duda. Como lo hago? Me podrías ayudar con alguna linea de código para ubicarme mejor

    • @Alpha94L
      @Alpha94L 9 років тому

      Israel Sistemas​

    • @IsraelSistemas
      @IsraelSistemas  9 років тому +1

      disculpa la demora, pues para hacer el registro cuando el datagridview es exactamente lo mismo del video, o te refieres a como llenar el datagrid?

  • @bbent2265
    @bbent2265 5 років тому

    Hola Israel, estoy utilizando tú codigo, pero me sale error, dice que :No se pudo encontrar la columna1. Gracias.

  • @cordoncilloinlet4739
    @cordoncilloinlet4739 8 років тому

    hola tengo un problema con datagridview estoy usando este codigo y solo me guarda la ultima fila seleccionada
    Dim CONTROLF As Integer = SinAutorizar.Item(1, SinAutorizar.CurrentRow.Index).Value
    Dim filas As DataGridViewRow = New DataGridViewRow()
    For Each filas In SinAutorizar.Rows
    Try
    comandos.Connection = MiConexion
    comandos.CommandText = "UPDATE CONTROL_FALTAS SET AUTORIZADO='S' WHERE ID_CONTROL='" & CONTROLF & "'"
    comandos.ExecuteNonQuery()
    Catch
    'verifica error de conexion
    MsgBox("Error en la conexion:" & vbNewLine & "El servidor, puede encontrarse en mantenimiento.", MsgBoxStyle.Information, "Conexion Fallida")
    MiConexion.Close()
    End
    Finally
    MiConexion.Close()
    End Try
    MiConexion.Open()
    Next
    MsgBox("Registro Actualizado")
    ' Close()
    End Sub
    necesito guardar todas las filas seleccionadas y no se que estoy haciendo mal

  • @ottoe8070
    @ottoe8070 7 років тому

    buenas tardes como puedo estoy tratando de hacer lo que dices en este video, pero me arroja un error que dice " error al convertir el tipo de datos nvarchar a numeric"

  • @W8126
    @W8126 5 років тому

    ¿Que pasa si tu base de datos ya tiene registros guardados?

  • @Ing.RaulPadilla
    @Ing.RaulPadilla 6 років тому

    tengo un datagridview que lee una tabla desde sqlserver, en el otro datagridview los campos los agrega por defecto como estan en la tabla original sql yo lo que quiero es ese datagridview cargarlos a una tabla con los mismos campos originales y se va por el error

  • @josemiguel6192
    @josemiguel6192 8 років тому

    Olle una pregunta donde tu declara fila.cells ami me sale un error diciedome que no al declarado esa variables

  • @Carlos51057
    @Carlos51057 2 роки тому

    Bro no me deja agregar los datos, me sale el error y el codigo esta bien, me puedes ayduar?

  • @macoadixion
    @macoadixion 8 років тому

    como actualizas la tabla???

  • @kasysmx
    @kasysmx 6 років тому

    Hola, espero y me puedan ayudar, ya tengo todo el código para q guarde, no me arroja ningún error pero no guarda nada en la base de datos, necesito tu ayuda urgente amigo

  • @ottoe8070
    @ottoe8070 7 років тому

    por favor, podrías darme tu correcto para mostrarte lo que hice y para que ve me digas porque me sale ese error?

  • @antoniovilleda7540
    @antoniovilleda7540 6 років тому

    muchas gracias! funcionó =)

  • @erwinpardo26
    @erwinpardo26 5 років тому

    Me parece muy bueno tu video me ayudo mucho, pero como le hago si en mi formulario tengo textbox y DataGrid y los dos los quiero guardar a una misma tabla en sql

  • @kedindiaztafur9473
    @kedindiaztafur9473 8 років тому

    gracias amigo por tus ayuda, una consulta, como puedo hacer para guardar desde el datagriedwier un bloque de regustro supongamos 8 registro a la vez, te agradesco de antemano tu ayuda

    • @IsraelSistemas
      @IsraelSistemas  8 років тому

      +Kedin Diaz Tafur con este mismo codigo se puede, el for each recorre todo el datagrid y los almacena sin importar cuantos sean, saludos

    • @kedindiaztafur9473
      @kedindiaztafur9473 8 років тому

      si me disculpo recien lo acabo de ver, pero tambien puedo registrar datos que no muestro en el datagriedwier ?¿?¿

    • @IsraelSistemas
      @IsraelSistemas  8 років тому

      mm a menos que te refieras a poner 10 campos por ejemplo y hacer mas chico el dgv para solo mostrar 5 o 6 si es posible, si te refieres a no mostrarlos por completo, no es posible debido a que el for each recorre los elementos contenidos en el dgv siempre y cuando estos existan (sean visibles), espero haya aclarado tu duda

    • @kedindiaztafur9473
      @kedindiaztafur9473 8 років тому

      como decir poner todos los datos en el datagriedvier, y deahi ocultar algunos se puede ocultar los campos que se muestran ?¿?¡

    • @kedindiaztafur9473
      @kedindiaztafur9473 8 років тому

      amigo, yo creo las columnas con codigos es esto: Dim Dc7 As New DataColumn("Cod", GetType(System.String))
      Dim Dc6 As New DataColumn("Dia", GetType(System.String)), la variable donde va column1, cual seria sabes ?¿?¿

  • @Luis24095
    @Luis24095 9 років тому

    buenas seguí tu tutorial al pie de la letra lo único que cambie es que en bes de una sentencia utilice un procedimiento almacenado pero cuando hago la consulta en la DB solo aparecen la llave primaria y los campos aparecen vacíos y solo se ingresa un dato. ayuda¡¡

    • @IsraelSistemas
      @IsraelSistemas  9 років тому

      Luis Rosa mm no comprendo bien el resultado que te arroja, podrias pasarme tu codigo y el resultado por favor

    • @Luis24095
      @Luis24095 9 років тому

      Israel Sistemas esta es la funcion que e creado para ingresar los datos
      ''Ingreso de datos generales del grupo familiar del alumno becado
      Public Function insertGrupoF()
      Dim idGF As Int32 = 0
      Dim fila As DataGridViewRow = New DataGridViewRow()
      Try
      conexion = New SqlConnection("Data Source=(local);initial catalog=SYSCONU;integrated security=true;")
      comando = New SqlCommand("sp_GrupoFamiliar_Inser", conexion)
      comando.CommandType = CommandType.StoredProcedure
      For Each fila In GrupoFamiliar.DataGridView1.Rows
      conexion.Close()
      conexion.Open()
      With comando
      .Parameters.Clear()
      .Parameters.AddWithValue("@NombreFamilia", Convert.ToString(fila.Cells("Column1").Value))
      .Parameters.AddWithValue("@Parentesco", Convert.ToString(fila.Cells("Column2").Value))
      .Parameters.AddWithValue("@Edad", Convert.ToInt32(fila.Cells("Column3").Value))
      .Parameters.AddWithValue("@Ocupacion", Convert.ToString(fila.Cells("Column4").Value))
      End With
      Next
      idGF = Convert.ToInt32(comando.ExecuteScalar())
      If Not (idGF = 0) Then
      Return idGF
      Else
      Return 0
      End If
      Catch ex As Exception
      MsgBox("Error: " & ex.Message, MsgBoxStyle.Critical, "Base de datos")
      Return 0
      Finally
      conexion.Close()
      End Try
      End Function

    • @Luis24095
      @Luis24095 9 років тому

      Israel Sistemas pues veras el resultado que me da es que según pareces se ingresa los datos, ya que se genera la llave primaria que es identity, pero en los campos de: nombre, parentesco, edad, ocupacion.
      aparecen en blanco
      nota: no se aceptan datos nulos en la tabla

    • @IsraelSistemas
      @IsraelSistemas  9 років тому +1

      si me pudieras enviar tu proyecto completo y el script del procedimiento almacenado seria mas facil ayudarte, envialo aqui:
      israelsistemas1@gmail.com o israel_sistemas@hotmail.com

  • @TheAngel95002
    @TheAngel95002 9 років тому

    me ayudo bastante gracias

  • @francitoestrella4547
    @francitoestrella4547 8 років тому

    Hola soy estudiante, necesito ayuda, estay haciendo un programa con visual studio 2012 y SQL server 2012 pero no se como insertar varias filas de un Datagridview a una tabla de sql, estoy usando 3 capas (Entidades,Logica y Presentacion)
    cree este procedimiento almacenado:
    CRETAE PROC USP_DETALLEVENTAS_INSERT(
    @CLIENTE VARCHAR(50),
    @PRODUCTO VARCHAR(50),
    @SUB_TOTAL AS DECIMAL(10,2),
    @IGV AS DECIMAL(10,2),
    @TOTAL AS DECIMAL(10,2),
    )
    AS
    BEGIN
    DECLARE @ID_CLIENTE INT,
    @ID_PRODUCTO INT
    SELECT @ID_CLIENTE=ID_CLIENTE FROM CLIENTE WHERE RAZON_SOCIAL=@CLIENTE
    SELECT @ID_PRODUCTO=ID_PRODUCTO FROM PRODUCTO WHERE ESCRIPCION=@PRODUCTO
    INSERT INTO DETALLE_VENTA (ID_CLIENTE,ID_PRODUCTO,SUB_TOTAL,IGV,TOTAL)
    VALUES(@CLIENT,@ID_PROD,@SUB_TOTAL,@IGV,@TOTAL)
    END
    he escuchado que puedo usar un bucle.
    Agreadeceria una ayuda porfaaaaa.

  • @emanuelcancino94
    @emanuelcancino94 9 років тому

    Un genioooo!

  • @robertvaldez6695
    @robertvaldez6695 8 років тому

    Hola amigo, muy buen tutorial, pero tengo un problema, tengo un DGV con dos columnas con checkBox, pero cuando intento guardarlos, me devuelve valores incorrectos, utilizó un foreach para recorrer los registros, probado muchas formas, pero nada, espero puedes ayudarme, Gracias

    • @robertvaldez6695
      @robertvaldez6695 8 років тому

      Uso Update para editar los checkBox de la Tabla... Por cierto está en Access...

  • @AngelDiaz82
    @AngelDiaz82 8 років тому

    hay alguna forma de llenarlo usando tu DLL ?

    • @IsraelSistemas
      @IsraelSistemas  8 років тому

      en el DLL no existe como tal este metodo, pero puedes agregarlo :)

  • @paolavazquezalvarez4294
    @paolavazquezalvarez4294 9 років тому

    Excelente tutorial
    Gracias

  • @carlosnunezquintanilla3197
    @carlosnunezquintanilla3197 9 років тому

    hola segui tu tutorial y todo bien me guarda los datos solo necesito saber como haces para eliminar la ultima fila que esta de mas...

    • @IsraelSistemas
      @IsraelSistemas  9 років тому

      Carlos Nuñez Quintanilla esa fila se agrega porque el datagridview tiene la propiedad "AllowUserToAddRows" activa, para desactivarla ve a las propiedades del datagridview y ponla en falso, o por medio de codigo en el form_load pon esto:
      dataGridView1.AllowUserToAddRows = false
      Espero te sirva, lo compartas, te suscribas y me sigas en twitter para que me ayudes a crecer: @IsraelMontoya19

    • @carlosnunezquintanilla3197
      @carlosnunezquintanilla3197 9 років тому

      Israel Sistemas ya realice ese cambio (dataGridView1.AllowUserToAddRows = false) pero no me permite agregar datos me desabilita para insertar, la tarea que tengo es similar al ejemplo necesito capturar los datos para luego insertarlos a la tabla no se si se podrá por código para que no me tome la ultima fila vacia antemano Gracias...

    • @IsraelSistemas
      @IsraelSistemas  9 років тому

      mm es que ese metodo funciona cuando agregas los datos desde textBox, si lo quieres agregar directamente del dataGridView siempre sera asi

    • @carlosnunezquintanilla3197
      @carlosnunezquintanilla3197 9 років тому

      Israel Sistemas ok amigo bueno para solventarlo siendo ese el problema seria entonces un procedimiento que me elimina los registros creados vacios... Gracias por tu ayuda... Saludos

    • @IsraelSistemas
      @IsraelSistemas  9 років тому

      si, son dos soluciones a ese problema, uno como dices tu crear un procedimiento que elimine los registros vacios (que siempre es el que tiene la clave 0), y la otra que te digo yo, que agregues los datos a cada fila desde un textbox

  • @emanuelcancino94
    @emanuelcancino94 9 років тому

    de que manera se podría eliminar ese cero?

    • @IsraelSistemas
      @IsraelSistemas  9 років тому

      +Emanuel Cancino ese cero aparece porque envie un row vacio, lo que hago en este video es util cuando desde algun textbox o combo agregas los campos al datagrid (obvio desactivas la opcion que tiene para agregar un row) y listo, mientras el datagrid no tenga rows vacios no enviara ceros a la bd

    • @emanuelcancino94
      @emanuelcancino94 9 років тому

      bueno gracias Israel! por usar de tu tiempo en responder :) me están sirviendo tus vídeos! me suscribo

  • @almrm1975
    @almrm1975 8 років тому

    amigo porque me tira error en el executenonquery()

    • @IsraelSistemas
      @IsraelSistemas  8 років тому

      Disculpa la demora amigo, me pudieras poner en un comentario tu codigo para poder revisarlo, gracias

    • @almrm1975
      @almrm1975 8 років тому

      es para insertar ya tengo creados los stored procdure en sql
      Dim Conexion As New SqlConnection("Data Source=(local);Initial Catalog=INVENTARIO;Persist SecuritY Info=true;User Id=sa;Password=sa2000")
      Dim cmd As New SqlCommand("insertarcliente", conex)
      cmd.CommandType = CommandType.StoredProcedure
      cmd.Parameters.Add("@Id", SqlDbType.VarChar).Value = TextBox1.Text
      cmd.Parameters.Add("@Identidad", SqlDbType.VarChar).Value = Textbox2.Text
      cmd.Parameters.Add("@Nombre", SqlDbType.VarChar).Value = TextBox3.Text
      cmd.Parameters.Add("@Apellido", SqlDbType.VarChar).Value = TextBox4.Text
      cmd.Parameters.Add("@Telefono", SqlDbType.VarChar).Value = TextBox5.Text
      cmd.Parameters.Add("@Correo", SqlDbType.VarChar).Value = TextBox6.Text
      cmd.Parameters.Add("@FechaTrans", SqlDbType.VarChar).Value = TextBox7.Text
      cmd.Parameters.Add("@FechaPago", SqlDbType.VarChar).Value = TextBox8.Text
      cmd.Parameters.Add("@TipoPago", SqlDbType.VarChar).Value = TextBox9.Text
      cmd.Parameters.Add("@Cantidad", SqlDbType.VarChar).Value = TextBox10.Text
      TextBox1.Clear() : Textbox2.Clear() : TextBox3.Clear() : TextBox4.Clear() : TextBox5.Clear() : TextBox6.Clear() : TextBox7.Clear() : TextBox8.Clear() : TextBox9.Clear() : TextBox10.Clear()
      conex.Open()
      cmd.ExecuteNonQuery()

    • @IsraelSistemas
      @IsraelSistemas  8 років тому

      mm bueno lo que me causa curiosidad a simple vista es ¿por que abriste la conexion antes del executNonQuery?, otra, abres la conexion con una variable llamada "conex.Open" y declaraste una variable llamada "Conexion"?

  • @luisrivas4439
    @luisrivas4439 6 років тому

    excelente

  • @JoseTorres-jf9rb
    @JoseTorres-jf9rb 8 років тому

    OYE MAN,AL MOMENTO DE OCRERLO ENTRA DIRECTO A LA CATCH

  • @cordoncilloinlet4739
    @cordoncilloinlet4739 8 років тому

    hola tengo un problema con datagridview estoy usando este codigo y solo me guarda la ultima fila seleccionada
    Dim CONTROLF As Integer = SinAutorizar.Item(1, SinAutorizar.CurrentRow.Index).Value
    Dim filas As DataGridViewRow = New DataGridViewRow()
    For Each filas In SinAutorizar.Rows
    Try
    comandos.Connection = MiConexion
    comandos.CommandText = "UPDATE CONTROL_FALTAS SET AUTORIZADO='S' WHERE ID_CONTROL='" & CONTROLF & "'"
    comandos.ExecuteNonQuery()
    Catch
    'verifica error de conexion
    MsgBox("Error en la conexion:" & vbNewLine & "El servidor, puede encontrarse en mantenimiento.", MsgBoxStyle.Information, "Conexion Fallida")
    MiConexion.Close()
    End
    Finally
    MiConexion.Close()
    End Try
    MiConexion.Open()
    Next
    MsgBox("Registro Actualizado")
    ' Close()
    End Sub
    necesito guardar todas las filas seleccionadas y no se que estoy haciendo mal