none
update desde un GridView RRS feed

  • Pregunta

  • Buen dia

    Alguien que me pueda orientar, tengo unos datos obtenidos desde un archivo .CSV se muestran en un GridView y necesito cargarlos a una base de datos en SQLServer utilizando un Update o Insert.

    Solo quiero que carguen los datos sin los títulos de las columnas



    lunes, 30 de septiembre de 2019 15:47

Todas las respuestas

  • Hola  Jesus Gomez Arano

     

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma,  te comento que para  que la comunidad de foros te pueda asesorar mejor, es necesario que nos compartas el form/code que estás desarrollando

     

     

    Gracias por usar los foros de MSDN.

     

    Pablo Rubio

     ____

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    miércoles, 2 de octubre de 2019 15:39
    Moderador
  • Gracias lo tomo en cuenta.

    tengo estos metodos con los que me ayudan a obtener los datos de un archivo CSV, ya los puedo visualizar en la pagina con un Gridview, ahora necesito de su ayuda para que esos datos se puedan mandar a la base de datos en SQL Server, desde ese Gridview.

     private void CargarDatos(string strm)
            {
                DataTable tabla = null;
                StreamReader lector = new StreamReader(strm);
                String fila = String.Empty;
                Int32 cantidad = 0;
                do
                {
                    fila = lector.ReadLine();
                    if (fila == null)
                    {
                        break;
                    }
                    if (0 == cantidad++)
                    {
                        tabla = this.CrearTabla(fila);
                    }
                    this.AgregarFila(fila, tabla);
                } while (true);

                GridView1.DataSource = tabla;
                GridView1.DataBind();
            }

            private DataTable CrearTabla(String fila)
            {
                int cantidadColumnas;
                DataTable tabla = new DataTable("Datos");
                String[] valores = fila.Split(new char[] { ',' });
                cantidadColumnas = valores.Length;
                int idx = 0;
                foreach (String val in valores)
                {
                    String nombreColumna = String.Format("{0}", idx++);
                    tabla.Columns.Add(nombreColumna, Type.GetType("System.String"));
                }
                return tabla;
            }

            private DataRow AgregarFila(String fila, DataTable tabla)
            {
                int cantidadColumnas = 100;
                String[] valores = fila.Split(new char[] { ',' });
                Int32 numeroTotalValores = valores.Length;
                if (numeroTotalValores > cantidadColumnas)
                {
                    Int32 diferencia = numeroTotalValores - cantidadColumnas;
                    for (Int32 i = 0; i < diferencia; i++)
                    {

                        String nombreColumna = String.Format("{0}", (cantidadColumnas + i));
                        tabla.Columns.Add(nombreColumna, Type.GetType("System.String"));
                    }
                    cantidadColumnas = numeroTotalValores;
                }
                int idx = 0;
                DataRow dfila = tabla.NewRow();
                foreach (String val in valores)
                {
                    String nombreColumna = String.Format("{0}", idx++);
                    dfila[nombreColumna] = val.Trim();
                }
                tabla.Rows.Add(dfila);
                return dfila;
            }


            protected void BtnSubirArchivo_Click(object sender, EventArgs e)
            {
                if (FileUpload1.HasFile)
                    {
                    if (ChecarExtension(FileUpload1.FileName))
                        {
                            FileUpload1.SaveAs( MapPath("Archivos/" + FileUpload1.FileName));
                    

                             Label2.Text =FileUpload1.FileName +" cargado exitosamente";

                             LblOculto.Text = MapPath("Archivos/" + FileUpload1.FileName);
                        }
                    }
            else
                    {
                        Label2.Text = "Error al subir el archivo o no es el tipo .CSV";
                    }

            }

                bool ChecarExtension(string fileName)
                {
                    string ext = Path.GetExtension(fileName);
                    switch (ext.ToLower())
                    {
                        case ".csv":
                            return true;
                        default:
                            return false;
                    }
                }

                protected void BtnCargarDatos_Click(object sender, EventArgs e)
                {
                    try
                    {

                        CargarDatos(LblOculto.Text);
                    }
                    catch
                    {
                        Response.Write("Ocurrió un error debe cargar antes el archivo");
                    }
                }

    miércoles, 2 de octubre de 2019 15:49
  • Hola Jesus Gomez Arano:

    Veo que lo que obtienes es dinámico, pero cual es el destino en la base de datos.

    La tabla va a contener solo las filas del csv, o tiene que disponer de una estructura formateada. 

    Se supone que se debe de generar la estructura conforme a lo que le llegue en el archivo, o ya existe?

    Te pongo un link a un artículo que escribí sobre una pregunta similar a la tuya hace unas semanas, por si te ayuda.

    Leer archivo de texto e insertar en tabla

    https://javifer2.blogspot.com/search/label/text%20file

    miércoles, 2 de octubre de 2019 19:16
  • Muchas gracias, muy buen articulo, intentare eso, saludos
    viernes, 4 de octubre de 2019 15:26
  • De nada. Ya comentas como te ha ido.
    viernes, 4 de octubre de 2019 16:16