Usuario
update desde un GridView

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
- Editado Jesus Gomez Arano lunes, 30 de septiembre de 2019 16:36
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.
-
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");
}
} -
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
-
-