none
llenar BD con datos de una grilla RRS feed

  • Pregunta

  • Hola 

    Objetivo: llenar un BD en sql 2008 con datos cargados en un datagridview,

    programacion en c# 2008,windows forms,

    hola mi pregunta es tengo un datagridview que esta enlazado a mi base de datos.

    cree un boton por el cual visualizo en el datagridview una tabla de Excel con todos sus registros 

    ahora  ¿como puedo guardar esos registros en mi BD ?

    lunes, 24 de noviembre de 2014 20:45

Todas las respuestas

  • ¿Cómo enlaza el DGV a la base de datos?  Luego me confunde cuando dice que por un lado hay un DGV enlazado a base de datos, pero por otro dice que hay un botón que llena el DGV con datos de Excel.  ¿Tiene 2 DGV, o estamos hablando del mismo y cuando usted dice "base de datos" está realmente hablando de Excel?

    Jose R. MCP
    Code Samples

    lunes, 24 de noviembre de 2014 20:49
    Moderador
  •      Consulta los datos que quieres guardar  son los que tienes actualmente en tu datagridview ??

    BEMO

    lunes, 24 de noviembre de 2014 20:51
  • hola Jose R MPC

    Mi base de datos esta en sql 2008 como esta en el objetivo de mi pregunta.

    lo que yo quiero es que el usuario del programa que desarrollo pueda cargar datos desde excel

    para lo cual hice un botón que me carga los datos en el DGV, pero mi problema apareció a la hora de configurar

    un botón que guarde estos datos en la BD. 

    lunes, 24 de noviembre de 2014 20:53
  • Efectivamente quiero guardar los datos que visualizo en DGV.

    lunes, 24 de noviembre de 2014 20:55
  • Ok, creo que ya entendí el escenario.  Una BD SQL Server 2008 requiere que un usuario importe datos residentes en MS Excel.

    ¿Sabía usted que existe un add-in llamado SaveToDB que hace esto exactamente?  Lo menciono por si acaso le sirve en vez de proveer su propia solución.

    Si debe hacerlo usted mismo, deberá decidir si la herramienta servirá para cargar datos a cualquier tabla en la base de datos o si será usada específicamente para una tabla particular.

    Si es para cualquier tabla, yo vincularía el DGV a un DataTable con los datos de Excel y luego pasaría ese DataTable a un objeto SqlCommand que correría un procedimiento almacenado.  Dicho procedimiento podría hacer la grabación una fila a la vez, o bien podría tener un parámetro tipo tabla que acepte el DataTable completo.  Bueno, ahora que recuerdo el procedimiento necesitaría saber el tipo de tabla, así que supongo que esta opción es contradictoria con la premisa de "cualquier tabla".

    Pero si en realidad son muchos registros, la mejor herramienta es SSIS o BULK INSERT.


    Jose R. MCP
    Code Samples

    lunes, 24 de noviembre de 2014 21:03
    Moderador
  •     lo que debes hacer es recorrer tu DGV 

    Ejemplo :

     foreach (DataGridViewRow row in DGV .Rows)

     {

          SQLHelper.ExecuteScalar(Conexion(), CommandType.StoredProcedure,
                                    @"abm    ( 
                                    @id)",                  

                                    new sqlParameter("@id",row.Cells["id"].Value)

       };

    Usando SQLHelper.. puedes adaptar a tu uso

    lunes, 24 de noviembre de 2014 21:05